1. 模块介绍
time模块中时间表现的格式主要有三种:
- 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。返回的是float类型的数字。产生时间戳方式的函数主要有time(),clock()等。
- 格式化的时间字符串(Format String)
- 结构化的时间(struct_time):struct_time是一个元组类型,共有9个元素共九个元素(见下表),而gmtime(),localtime(),strptime()这几个函数返回的都是struct_time类型。
其中struct_time共有9个主要元素如下,元素值可以通过索引和属性名直接获取。
Index | Attribute | Values |
---|---|---|
0 | year(4位数年) | (for example, 1993) |
1 | month(月) | range [1, 12] |
2 | day(日) | range [1, 31] |
3 | hours(小时) | range [0, 23] |
4 | minutes(分钟) | range [0, 59] |
5 | seconds(秒钟) | range [0, 59] |
6 | weekday | (0-6, Monday is 0) |
7 | Julian day(一年中的第几天) | (day in the year, 1-366) |
8 | DST (Daylight Savings Time) | flag (-1, 0 or 1) |
2. 函数介绍
- time() 返回当前时间的一个时间戳。
- sleep(seconds) 线程将推迟指定的时间后运行,单位为秒。其精度为亚秒级。
>>> import time
>>> print(time.time()) #返回当前时间的一个时间戳
1582955575.9293113
>>> time.sleep(5)
#...等待5秒....
- localtime([seconds]) 将一个时间戳转化为当前地区的一个struct_time()类型元组,未设置默认为当前时间。
- gmtime([seconds]) 与localtime类似,不过返回的UTC世界标准时间。
>>> print(time.localtime())
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=14, tm_min=0, tm_sec=20, tm_wday=5, tm_yday=60, tm_isdst=0)
>>> print(time.gmtime())
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=6, tm_min=1, tm_sec=23, tm_wday=5, tm_yday=60, tm_isdst=0)
- mktime(tuple) 将一个strut_time 转化为时间戳。
>>> print(time.mktime(time.localtime()))
1582956251.0
>>> time.ctime(1582956251.0)
'Sat Feb 29 14:04:11 2020'
- ctime([seconds]) 将一个时间戳(默认为当前时间)转换成一个时间字符串。
- asctime() 把一个代表时间的元组或者struct_time类型元组,转换为类似Thu Mar 21 15:05:36 2019这样的字符串形式。
>>> print(time.ctime(1582955575.9293113))
Sat Feb 29 13:52:55 2020
>>> time.asctime(time.localtime())
'Sat Feb 29 14:10:04 2020'
- strptime(string, format) 把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
- strftime(format[, tuple]) 把一个代表时间的元组或者struct_time类型元组转化为格式化的时间字符串。
>>> print(time.strftime('%Y%m%d%H%M%S'))
20200229142450
>>> print(time.strptime('20200229142500','%Y%m%d%H%M%S'))
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=14, tm_min=25, tm_sec=0, tm_wday=5, tm_yday=60, tm_isdst=-1)
- clock() 返回的是程序进程运行时间。
…
最后引用网上的两张关系图表,它们清晰的总结了几个函数和返回类型之间的转换关系: