上QQ阅读APP看书,第一时间看更新
3.6 Python中的time模块
time模块提供了与时间相关的函数。时间间隔是以秒为单位的浮点数。在Python中,通常有这几种方式来表示时间:时间戳(timestamp)、结构化时间(struct time)、格式化的时间字符串。
(1)时间戳
我们可以使用“time.time()”来获取时间戳,它表示从1970年1月1日00:00:00开始到现在一共经历了多长时间,单位是秒。
示例代码如下。
>>> import time >>> time.time() 1588647868.1104956
需要注意以下两点。
●时间戳适用于做日期运算,但是1970年之前的日期就无法用时间戳表示了。太遥远的未来的日期也不行,UNIX和Windows只支持到2038年。
●时间戳适合表示唯一值。
(2)结构化时间
很多Python函数用元组装起来的9组数字处理时间,如表3-1所示。
表3-1 Python结构化时间
续表
示例代码如下。
>>> localtime = time.localtime()
运行结果如下。
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=5, tm_hour=11, tm_min=28, tm_sec=51, tm_wday=1, tm_yday=126, tm_isdst=0)
(3)格式化时间
我们可以借助strftime将当前时间以特定的格式输出,如下所示(示例代码:test3_20.py)。
import time # 格式化成2016-03-20 11:45:39形式 print(time.strftime(“%Y-%m-%d %H:%M:%S”, time.localtime())) # 格式化成Sat Mar 28 22:24:24 2016形式 print(time.strftime(“%a %b %d %H:%M:%S %Y”, time.localtime())) # 将格式字符串转换为时间戳 a = “Tue May 05 06:06:06 2020” print(time.mktime(time.strptime(a, “%a %b %d %H:%M:%S %Y”)))
运行结果如下。
2020-05-05 11:13:26 Tue May 05 11:13:26 2020 1588629966.0
time.strftime里面有很多参数,我们能够随意地输出自己想要的内容,下面是time.strftime的参数介绍。
strftime(format[, tuple]) -> string用于将指定的struct_time(默认为当前时间)根据指定的格式化字符串输出,格式化符号与其对应的表示内容如表3-2所示。
表3-2 格式化输出
续表
格式化时间示例如下(示例代码:test3_21.py)。
import time # 输出年月日,以斜杠分隔,如2020/05/12 print(time.strftime('%Y/%m/%d',time.localtime(time.time()))) # 显示年月日时分秒,中间无分隔符,常用作保存日志的文件名,如20200512210350 print(time.strftime('%Y%m%d%H%M%S',time.localtime(time.time())))
本节我们学习了time模块的常用操作,请大家熟练掌握。