python内置模块——time
python中常见处理时间的函数除了之前介绍的datetime模块,还有一个time模块,其中最著名的一个方法就是sleep,其在线程、进程中常常得到应用。
time模块中表示时间的方式一般有以下四种:
- 时间戳:时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。
- 格式化的时间字符串:有专门用于时间显示的格式化字符串,下面会介绍到。
- 元组(struct_time):由九个元素组成,下面会详细介绍。
- asctime形式:例如这种'Tue Oct 30 18:38:05 2018'
显示时间戳形式
- time.time():显示当前时间戳
>>> time.time()
1540895526.2518616
- time.mktime(k):将k这个元组形式的时间格式转换成时间戳,k这个参数是必须的。
>>> time.mktime(time.localtime())
1540895650.0
显示元组格式
下面是元组九个元素:
- time.localtime():返回当前以元组格式的时间
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=30, tm_hour=18, tm_min=39, tm_sec=17, tm_wday=1, tm_yday=303, tm_isdst=0)
- time.gmtime():返回当前0时区的元组形式时间,我国是在东八区。
>>> time.gmtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=31, tm_hour=15, tm_min=2, tm_sec=33, tm_wday=2, tm_yday=304, tm_isdst=0)
- time.strptime(string[,format]):将格式化时间字符串变成元组形式,第一个必须参数是字符串时间,第二个可选参数是对应字符串时间的格式化形式,默认是"%a %b %d %H:%M:%S %Y"。格式化规则下面有介绍
>>> time.strptime('2018-10-31 23:30:53', '%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=31, tm_hour=23, tm_min=30, tm_sec=53, tm_wday=2, tm_yday=304, tm_isdst=-1)
自定义格化时间格式
下图是time模块的格式化规则
- time.strftime(format[,t]):将元组形式的时间变成指定格式化的字符串,第一个必选参数是指定的格式化,第二个可选参数表示元组形式的时间,默认是time.localtime()返回的结果。
>>> time.strftime('%Y-%m-%d %H:%M:%S')
'2018-10-31 23:33:14'
显示asctime形式
- time.asctime([t]):将元组形式的时间转为asctime,默认传入time.localtime()。
>>> time.asctime()
'Wed Oct 31 23:36:30 2018'
- time.ctime([t]):将时间戳转为asctime,默认传入time.time()。
>>> time.ctime()
'Wed Oct 31 23:37:55 2018'
其他主要方法
- time.sleep(secs):睡眠secs秒,常在线程中应用,可模拟阻塞任务和耗时任务。
- time.clock():这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。
>>> time.clock() 8.533329692445998e-07 >>> time.clock() 7.501826345887426 >>> time.clock() 16.350440383812103