谁能告诉我为什么在Python中使用gmtime和mktime得到错误结果?

1 投票
2 回答
849 浏览
提问于 2025-04-18 16:14

我使用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 元组转换成自纪元以来的秒数?

撰写回答