Time
前言
time是python中的一个时间模块.
时间间隔是以秒为单位的浮点数.
其中表示的时间戳是指从1970.1.1到当前的时间.
使用
time.time()
>>> import time
>>> time.time()
1538805603.19149
time.time(): 返回197.1.1到当前的时间的时间戳.
time.localtime()
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=6, tm_hour=14, tm_min=1, tm_sec=44, tm_wday=5, tm_yday=279, tm_isdst=0)
>>> time.localtime(time.time())
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=6, tm_hour=14, tm_min=2, tm_sec=40, tm_wday=5, tm_yday=279, tm_isdst=0)
time.localtime(): 返回本地时间的时间元祖. 可以接收一个时间戳对象并返回对应的时间元祖.
时间元祖即struct_time.
time.gmtime()
>>> time.gmtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=6, tm_hour=6, tm_min=42, tm_sec=18, tm_wday=5, tm_yday=279, tm_isdst=0)
>>> time.gmtime(time.time())
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=6, tm_hour=6, tm_min=42, tm_sec=32, tm_wday=5, tm_yday=279, tm_isdst=0)
time.gmtime(): 和localtime类似, 但是返回的是格林威治天文时间下的时间元祖.
time.asctime()
>>> time.asctime()
'Sat Oct 6 14:07:55 2018'
>>> time.asctime(time.localtime())
'Sat Oct 6 14:10:08 2018'
time.asctime(): 返回格式化的时间字符串. 也可以接收一个时间元祖对象并返回对应的时间字符串.
time.ctime()
>>> time.ctime()
'Sat Oct 6 15:07:33 2018'
>>> time.ctime(time.time())
'Sat Oct 6 15:07:44 2018'
time.ctime(): 类似asctime方法, 接收或不接收一个时间戳对象, 返回时间字符串.
这个方法和asctime的确保在于返回的字符串的编码类型不同.
ctime返回是默认编码格式, asctime返回的是ASCII
格式.
time.strftime()
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
'2018-10-06 14:16:55'
>>> time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
'Sat Oct 06 14:17:45 2018'
time.strftime(): 接收一个格式化字符串和时间元祖, 并返回格式化的时间字符串.
time.strptime()
>>> time.strptime(time.asctime())
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=6, tm_hour=14, tm_min=19, tm_sec=31, tm_wday=5, tm_yday=279, tm_isdst=-1)
time.strptime(): 将一个时间字符串转换为时间元祖类型.
time.mktime()
>>> time.mktime(time.strptime(time.asctime()))
1538806844.0
>>> time.mktime(time.localtime())
1538806975.0
time.mktime(): 接收一个时间元祖对象, 返回对应的时间戳.
time.sleep()
>>> time.sleep(2)
...休息2秒...
>>>
time.sleep(): 接收一个数值对象(int or float), 然后推迟运行指定的数值时间.
time.clock()
# linux
>>> time.clock()
0.041854
>>> time.clock()
0.042171
>>> a = time.clock()
>>> b = time.clock()
>>> b - a
0.0016979999999999981
# win
>>> time.clock()
0.0
>>> time.clock()
2.8628072330602374
>>> time.clock()
3.3445361381900995
time.clock(): 以浮点数的秒数返回当前cpu的时间, 用来衡量不同程序耗时.
linux: 返回的是进程的时间, cpu是一些时间片断断续续切换着执行任务的, 所以cpu中程序运行的时间和time.time的时间是有区别的. 使用clock将得到程序单纯地在cpu中运行的时间. 前后两次的差值来得到执行时间.
win: win和linux的clock存在区别, 第一次调用clock返回的是程序运行的实际时间, 第二次调用返回的是自第一次调用到现在程序运行的时间. 所以我们调用两次clock来得到程序运行的时间, 取第二次调用的值.
struct_time时间元祖
索引 | 属性 | 值 |
---|---|---|
0 | tm_year | 2018 |
1 | tm_mon | 1~12 |
2 | tm_mday | 1~31 |
3 | tm_hour | 0~23 |
4 | tm_min | 0~59 |
5 | tm_sec | 0~61(闰秒了解一下) |
6 | tm_wday | 0~6(周几) |
7 | tm_yday | 1~366(儒略历) |
8 | tm_isdst | -1,0,1(-1表示夏令时) |
常用格式化时间字符串
- %Y: 年.
- %m: 月.
- %d: 日.
- %H: 时.
- %M: 分.
- %S: 秒.
- %a: 简化星期名.
- %b: 简化月份名.
属性
time.timezone
>>> time.timezone
-28800
time.timezone: 当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲).
time.tzname
>>> time.tzname
('CST', 'CST')
time.tzname: 包含一对根据情况的不同而不同的字符串, 分别是带夏令时的本地时区名称, 和不带的.