time模块(python)

2023-12-13 05:51:13

一.sleep休眠

[root@rhel8 day04]# vim demo01_time.py
import time
def banzhuan():
    print("搬砖")
    time.sleep(3.5)  #让程序休眠3.5秒
    print("结束")

banzhuan()

[root@rhel8 day04]# python3 demo01_time.py 
搬砖
结束

运行时,会发现程序中间暂停了3.5秒

二.time.time时间戳

从1970年1月1日00:00:00开始,到现在的秒数

[root@rhel8 day04]# vim demo01_time.py
print(time.time())
[root@rhel8 day04]# python3 demo01_time.py 
1702115925.7090266

可以利用上面自定义的函数+时间戳,验证sleep的效果,用程序执行后的时间戳减去程序执行前的时间戳,查看得到的秒数

[root@rhel8 day04]# vim demo01_time.py
import time
def banzhuan():
    print("搬砖")
    time.sleep(3.5)  #让程序休眠3.5秒
    print("结束")



time1 = time.time()
banzhuan()
time2 = time.time()
print("spend:",time2-time1)
[root@rhel8 day04]# python3 demo01_time.py 
搬砖
结束
spend: 3.5039751529693604

结果显示,中间暂停了3.5秒。

三.结构化时间

将时间戳转换为UTC时区的结构化时间

[root@rhel8 day04]# vim demo01_time.py
import time

print(time.gmtime(time.time()))
[root@rhel8 day04]# python3 demo01_time.py 
time.struct_time(tm_year=2023, tm_mon=12, tm_mday=9, tm_hour=10, tm_min=3, tm_sec=49, tm_wday=5, tm_yday=343, tm_isdst=0)

time.struct_time(tm_year=2023, tm_mon=12, tm_mday=9, tm_hour=10, tm_min=3, tm_sec=49, tm_wday=5, tm_yday=343, tm_isdst=0)?

可以得到九个字段,每个字段分别代表:

tm_year代表年份
tm_mon代表月份
tm_mday代表当月的第几天
tm_hourUTC时区的时间,换算成北京时间需要加八个小时
tm_min小时的第几分钟
tm_sec分钟的第几秒
tm_wday一周的第几天,按照0,1,2,3,4,5,6计算,今天周六,就显示5
tm_yday一年的第多少天
tm_isdst是否为夏令时
可以用索引方式取值
import time

data = time.gmtime(time.time())
print(data)
print(data[0])
print(data.tm_year,data.tm_hour,data.tm_min,data.tm_sec)
[root@rhel8 day04]# python3 demo01_time.py 
time.struct_time(tm_year=2023, tm_mon=12, tm_mday=9, tm_hour=10, tm_min=14, tm_sec=46, tm_wday=5, tm_yday=343, tm_isdst=0)
2023
2023 10 14 46

四.localtime()

time.localtime()表示当前时区的结构化时间

[root@rhel8 day04]# vim demo01_time.py 
import time

data = time.localtime()
print(data)
[root@rhel8 day04]# python3 demo01_time.py 
time.struct_time(tm_year=2023, tm_mon=12, tm_mday=9, tm_hour=18, tm_min=24, tm_sec=14, tm_wday=5, tm_yday=343, tm_isdst=0)

五.结构化时间转换为时间戳

[root@rhel8 day04]# vim demo01_time.py 
import time

data = time.mktime(time.localtime())
print(data)
[root@rhel8 day04]# python3 demo01_time.py 
1702117553.0

六.结构化时间--->时间字符串

[root@rhel8 day04]# vim demo01_time.py 
import time
#%Y 年 %m 月 %d 日 %H 小时 %M 分钟 %S 秒
data = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
print(data)
[root@rhel8 day04]# python3 demo01_time.py 
2023-12-09 19:19:04

七.时间字符串--->结构化时间

[root@rhel8 day04]# vim demo01_time.py 
import time
#%Y 年 %m 月 %d 日 %H 小时 %M 分钟 %S 秒
data = time.strptime("2029-11-01 19:56:47","%Y-%m-%d %H:%M:%S")
print(data)

[root@rhel8 day04]# python3 demo01_time.py 
time.struct_time(tm_year=2029, tm_mon=11, tm_mday=1, tm_hour=19, tm_min=56, tm_sec=47, tm_wday=3, tm_yday=305, tm_isdst=-1)

八.总结

练习

有一个日志文件内容如下,要求取出9点--12点的内容

[root@rhel8 day04]# cat /opt/myweb.log 
2030-01-02 08:01:43 aaaaaaaaaaaaaaaa
2030-01-02 08:34:23 bbbbbbbbbbbbbbbb
2030-01-02 09:23:12 cccccccccccccccccccc
2030-01-02 10:56:13 dddddddddddddddddddddd
2030-01-02 11:38:19 eeeeeeeeeeeeeeeeeeeee
2030-01-02 12:02:28 ffffffffffffffffffff

?

使用readlines函数方式如下

[root@rhel8 day04]# vim test02_time.py
import time
t9 = time.strptime("2030-01-02 09:00:00","%Y-%m-%d %H:%M:%S")
t12 = time.strptime("2030-01-02 12:00:00","%Y-%m-%d %H:%M:%S")

with open("/opt/myweb.log",mode="r") as f:
    for line in f.readlines():
        t = time.strptime(line[:19],"%Y-%m-%d %H:%M:%S")
        if t9 <= t <= t12:
            print(line,end="")
[root@rhel8 day04]# python3 test02_time.py 
2030-01-02 09:23:12 cccccccccccccccccccc
2030-01-02 10:56:13 dddddddddddddddddddddd
2030-01-02 11:38:19 eeeeeeeeeeeeeeeeeeeee

?使用readlines函数方式如下

[root@rhel8 day04]# vim test02_time.py 
import time
t9 = time.strptime("2030-01-02 09:00:00","%Y-%m-%d %H:%M:%S")
t12 = time.strptime("2030-01-02 12:00:00","%Y-%m-%d %H:%M:%S")

with open("/opt/myweb.log",mode="r") as f:
    while True:
        data = f.readline()
        if len(data) == 0:
            break
        else:
            t = time.strptime(data[:19],"%Y-%m-%d %H:%M:%S")
            if t9 <= t <= t12:
                print(data,end="")
[root@rhel8 day04]# python3 test02_time.py 
2030-01-02 09:23:12 cccccccccccccccccccc
2030-01-02 10:56:13 dddddddddddddddddddddd
2030-01-02 11:38:19 eeeeeeeeeeeeeeeeeeeee

?

文章来源:https://blog.csdn.net/weixin_65562581/article/details/134898439
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。