python time模块详解2
一、time模块的处理对象
time模块的主要功能用于时间表示方法之间的转换和程序的时间控制。
包括三个时间表示方法:时间戳(float)、时间元组(tuple)、格式化时间(string)。
1.时间戳
以格林威治时间1970年01月01日00时00分00秒为零点(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒),开始计算的总秒数。
2.时间元组
用一个元组封装起来的9组数字处理时间。struct_time元组也是相同结构。
3.格式化时间
以文字格式输出的时间,python中时间日期格式化符号:
二、常用方法
1.返回时间戳
- 当前时间的时间戳:time.time()
- 时间元组→时间戳:time.mktime(<时间元组>)
>>> import time
>>> time.mktime((1972,1,1,1,1,1,0,0,0))
63046861.0
2.返回时间元组(struct_time)
- 时间戳→时间元组(当地):time.localtime(<时间戳>)
- 时间戳→时间元组(格林威治):time.gmtime(<时间戳>)
- 格式化时间→时间元组:time.strptime(<自定义的格式>, <%符号>)
>>> import time
>>> time.localtime(15564845527)
time.struct_time(tm_year=2463, tm_mon=3, tm_mday=26, tm_hour=0, tm_min=12, tm_sec=7, tm_wday=0, tm_yday=85, tm_isdst=0)
>>> time.gmtime(15564845527)
time.struct_time(tm_year=2463, tm_mon=3, tm_mday=25, tm_hour=16, tm_min=12, tm_sec=7, tm_wday=6, tm_yday=84, tm_isdst=0)
>>> time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X')
time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=16, tm_min=37, tm_sec=6, tm_wday=3, tm_yday=125, tm_isdst=-1)
3.返回格式化时间
- 时间元组→自定义格式:time.strftime(<格式化的符号>,<时间元组>)
- 时间元组→标准格式:time.asctime(<时间元组>)
- 时间戳→标准格式:time.ctime(<时间戳>)
>>> import time
>>> time.strftime('%Y-%m-%d %X',(1972,1,1,1,1,1,0,0,0))
'1972-01-01 01:01:01'
>>> time.asctime((1972,1,1,1,1,1,0,0,0))
'Mon Jan 1 01:01:01 1972'
>>> time.ctime(15564845527)
'Mon Mar 26 00:12:07 2463'
三、关于程序时间控制
1.time.sleep()
推迟调用线程的运行的秒数:time.sleep(<秒数>)。
2.time.perf_counter()
返回计时器的精准时间(系统的运行时间),包含整个系统的睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。
3.time.process_time()
返回当前进程执行 CPU 的时间总和,不包含睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。
#程序1
import time
a = 0
t1 = time.perf_counter()
for i in range(2**23):
a = a + 1
t2 = time.perf_counter()
print(t2-t1)
#输出
>>> %Run main.py
0.7979674
#程序2
import time
a = 0
t1 = time.perf_counter()
time.sleep(1) #程序睡眠1秒
for i in range(2**23):
a = a + 1
t2 = time.perf_counter()
print(t2-t1)
#输出
>>> %Run main.py #睡眠时间计入
1.8240009
#程序3
import time
a = 0
t1 = time.process_time()
time.sleep(1) #程序睡眠1秒
for i in range(2**23):
a = a + 1
t2 = time.process_time()
print(t2-t1)
#输出
>>> %Run main.py #睡眠时间不计入
0.8125

浙公网安备 33010602011771号