time.time()
返回时间戳(timestamp), 表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。
time.localtime()
生成时间元祖(struct_time),如果没有传入参数,就将当前时间自动传入
>>> time.localtime()
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=26, tm_hour=23, tm_min=57, tm_sec=37, tm_wday=4, tm_yday=85, tm_isdst=0)
其中元素分别代表
索引(Index) 属性(Attribute) 值(Values) 0 tm_year(年) 比如2011 1 tm_mon(月) 1 - 12 2 tm_mday(日) 1 - 31 3 tm_hour(时) 0 - 23 4 tm_min(分) 0 - 59 5 tm_sec(秒) 0 - 61 6 tm_wday(weekday) 0 - 6(0表示周日) 7 tm_yday(一年中的第几天) 1 - 366 8 tm_isdst(是否是夏令时) 默认为-1
>>> time.localtime(time.time())
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=26, tm_hour=23, tm_min=59, tm_sec=34, tm_wday=4, tm_yday=85, tm_isdst=0)
>>> time.localtime(111111111)
time.struct_time(tm_year=1973, tm_mon=7, tm_mday=10, tm_hour=8, tm_min=11, tm_sec=51, tm_wday=1, tm_yday=191, tm_isdst=0)
time.gmtime()
和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time
>>> time.gmtime(time.time())
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=26, tm_hour=16, tm_min=0, tm_sec=59, tm_wday=4, tm_yday=85, tm_isdst=0)
time.mktime()
将一个struct_time转化为时间戳
>>> time.mktime(time.localtime())
1616774641.0
time.strftime()
把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()
>>> time.strftime('%y-%m-%d_%H:%M:%S')
'21-03-27_00:06:35'
以下为格式化的时间字符串定义
| 指令 | 意义 | 注释 |
%a | 本地化的缩写星期中每日的名称。 | |
---|---|---|
%A | 本地化的星期中每日的完整名称。 | |
%b | 本地化的月缩写名称。 | |
%B | 本地化的月完整名称。 | |
%c | 本地化的适当日期和时间表示。 | |
%d | 十进制数 [01,31] 表示的月中日。 | |
%H | 十进制数 [00,23] 表示的小时(24小时制)。 | |
%I | 十进制数 [01,12] 表示的小时(12小时制)。 | |
%j | 十进制数 [001,366] 表示的年中日。 | |
%m | 十进制数 [01,12] 表示的月。 | |
%M | 十进制数 [00,59] 表示的分钟。 | |
%p | 本地化的 AM 或 PM 。 | (1) |
%S | 十进制数 [00,61] 表示的秒。 | (2) |
%U | 十进制数 [00,53] 表示的一年中的周数(星期日作为一周的第一天)。 在第一个星期日之前的新年中的所有日子都被认为是在第 0 周。 | (3) |
%w | 十进制数 [0(星期日),6] 表示的周中日。 | |
%W | 十进制数 [00,53] 表示的一年中的周数(星期一作为一周的第一天)。 在第一个星期一之前的新年中的所有日子被认为是在第 0 周。 | (3) |
%x | 本地化的适当日期表示。 | |
%X | 本地化的适当时间表示。 | |
%y | 十进制数 [00,99] 表示的没有世纪的年份。 | |
%Y | 十进制数表示的带世纪的年份。 | |
%z | 时区偏移以格式 +HHMM 或 -HHMM 形式的 UTC/GMT 的正或负时差指示,其中H表示十进制小时数字,M表示小数分钟数字 [-23:59, +23:59] 。 | |
%Z | 时区名称(如果不存在时区,则不包含字符)。 | |
%% | 字面的 '%' 字符。 |
time.strptime()
把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
>>> time.strptime('21-03-27_00:06:35', '%y-%m-%d_%H:%M:%S')
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=27, tm_hour=0, tm_min=6, tm_sec=35, tm_wday=5, tm_yday=86, tm_isdst=-1)
time.asctime()
把一个表示时间的元组或者struct_time表示为这种形式:‘Sat Mar 27 00:13:16 2021’。如果没有参数,将会将time.localtime()作为参数传入。
>>> time.asctime()
'Sat Mar 27 00:13:16 2021'
time.ctime()
把一个时间戳转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于 time.asctime(time.localtime(secs))
>>> time.ctime()
'Sat Mar 27 00:11:07 2021'
time.sleep()
当前线程推迟运行指定时间,秒为单位
奉上一张时间转换图(从Alex那里偷来的哈哈哈)
关于 time 模块的更多方法和属性详见官网–time模块