1. 时间信息的表示
1.1 time.struct_time
time
模块定义了一个时间数据结构time.struct_time
(网上大部分都称为时间数组),如下:
import time
print(time.localtime(time.time()))
================================================================================================
>> time.struct_time(tm_year=2017, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=53, tm_sec=32, tm_wday=2, tm_yday=361, tm_isdst=0)
括号里从左到右依次是年月日时分秒,tm_wday
以一周为周期,周一为0
,周二为1
,...,周日为6
。tm_yday
代表一年中的第几天,从1
月1
日tm_yday=1
开始,一直到12
月31
日tm_yday=365(366)
结束。最后一个参数不知道。
1.2 时间戳
unix
时间戳是从1970
年1
月1
日(UTC/GMT
的午夜)开始所经历的秒数。如果把时间看成一根数轴,原点选在1970
年1
月1
日(UTC/GMT
的午夜),时间戳就可以表示1970
年1
月1
日(UTC/GMT
的午夜)后任一时刻到原点的距离。time
模块中使用浮点数float
表示时间戳。使用时间戳可以很方便的进行时差等运算,但是不方便人类阅读。
1.3 格式化的字符串
除了以上两种形式以外,还可以使用格式化的字符串来表示时间。例如2017-12-31 14:28:36
的格式为%Y-%m-%d %H:%M:%S
,2017/12/31 14:28:36
的格式为%Y/%m/%d %H:%M:%S
。当然也可以使用汉字,2017年12月31日 14时28分36秒
的格式为%Y年%m月%d日 %H时%M分%S秒
。即以%Y
表示年,%m
表示月,%d
表示日,%H
表示时,%M
表示分,%S
表示秒。
2. 不同时间表示方式的转换
2.1 格式化字符串与时间数组之间的转换
-
time.strptime(string, format)
用于把格式化的字符串转换为时间数组,字符串的格式通过format
参数指定 -
time.strftime(format[, tuple])
用于把时间数组按照format
参数指定的格式转换为格式化的字符串
2.2 时间戳与时间数组之间的相互转换
-
time.localtime([seconds])
用于把时间戳转换为相对应的时间数组,seconds
是可选的,如果不指定,默认时间戳为当前时间戳 -
time.mktime(tuple)
用于把时间数组转换为时间戳
2.3 时间戳与格式化字符串的转换
这个需要使用时间数组作为中介,先把时间戳转换为时间数组,然后把时间数组转换为格式化的字符串(或者反之)
3. 获取当前时间信息
time.time()
可以用来获取这个函数调用时刻的时间信息。这个函数不接受参数,直接返回当前时刻对应的时间戳。
网友评论