time.gmtime和time.localtime
time.gmtime([secs])
将以自 epoch 开始的秒数表示的时间转换为 UTC 的 struct_time ,其中 dst 标志始终为零。 如果未提供 secs 或为 None ,则使用 time() 所返回的当前时间。 一秒以内的小数将被忽略。
应用例子
1.time.gmtime()
未传入任何参数时,返回当前UTC时间。北京时间2020/12/09 15:06:30
# 导入time模块
import time
# 未传入sec参数
print(time.gmtime())
输出:
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=9, tm_hour=7, tm_min=6, tm_sec=30, tm_wday=2, tm_yday=344, tm_isdst=0)
2.time.gmtime(1)
传入secs,以自 epoch 开始的秒数表示的时间转换为 UTC 的 struct_time
# 导入time模块
import time
# 传入secs参数
print(time.gmtime(1))
输出
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
time.localtime([secs])
与 gmtime() 相似但转换为当地时间。如果未提供 secs 或为 None ,则使用由 time() 返回的当前时间。当 DST 适用于给定时间时,dst标志设置为 1 。
应用例子
1.time.localtime()
未传入任何参数时,返回当前本地时间。北京时间2020/12/09 15:06:30
# 导入time模块
import time
# 未传入sec参数
print(time.localtime())
输出:
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=9, tm_hour=15, tm_min=6, tm_sec=30, tm_wday=2, tm_yday=344, tm_isdst=0)
2.time.localtime(1)
传入secs,以自 epoch 开始的秒数表示的时间转换为当地的 struct_time
# 导入time模块
import time
# 传入secs参数
print(time.localtime(1))
输出:
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
class time.struct_time
返回的时间值序列的类型为 gmtime() 、 localtime() 和 strptime() 。它是一个带有 named tuple 接口的对象:可以通过索引和属性名访问值。 存在以下值:
索引 | 属性 | 属性 |
---|---|---|
0 | tm_year | (例如,1993) |
1 | tm_mon | range [1, 12] |
2 | tm_mday | range [1, 31] |
3 | tm_hour | range [0, 23] |
4 | tm_min | range [0, 59] |
5 | tm_sec | range [0, 61]; 见 strftime() 介绍中的 (2) |
6 | tm_wday | range [0, 6] ,周一为 0 |
7 | tm_yday | range [1, 366] |
8 | tm_isdst | 0, 1 或 -1;如下所示 |
N/A | tm_zone | 时区名称的缩写 |
N/A | tm_gmtoff | 以秒为单位的UTC以东偏离 |
请注意,与C结构不同,月份值是 [1,12] 的范围,而不是 [0,11]。
在调用 mktime() 时, tm_isdst 可以在夏令时生效时设置为1,而在夏令时不生效时设置为0。 值-1表示这是未知的,并且通常会导致填写正确的状态。
当一个长度不正确的元组被传递给期望 struct_time 的函数,或者具有错误类型的元素时,会引发 TypeError 。