谁能告诉我为什么在Python中使用gmtime和mktime得到错误结果?
我使用Python的时间模块来把时间结构(time_struct)和时间戳(timestamp)进行转换:
mktime(gmtime(1404144000))
结果是:
1404115200.0
谁能告诉我这是为什么呢?
2 个回答
0
mktime() 函数需要一个时间元组,这个元组的时间是根据本地时间来的。所以,使用这个函数可以得到正确的结果:
mktime(localtime(1404144000))
如果你想处理的是 UTC 时间的元组,那么可以通过指定时区来进行转换:
mktime(gmtime(1404144000))-timezone
1
mktime()
是 localtime()
的反向操作,而不是 gmtime()
的反向操作。
如果你想要 gmtime()
的反向操作,可以看看这个问题:
有没有一个函数可以把 UTC 元组转换成自纪元以来的秒数?