【问题标题】:who can tell me why I use gmtime and mktime in python, get wrong result?谁能告诉我为什么我在 python 中使用 gmtime 和 mktime,得到错误的结果?
【发布时间】:2014-08-06 12:16:06
【问题描述】:

我使用python的时间模块来转换time_struct和timestamp:

mktime(gmtime(1404144000))

结果是:

1404115200.0

谁能告诉我为什么?

【问题讨论】:

  • 你想要什么结果? mktime 返回一个浮点数,与 time() 兼容。

标签: python


【解决方案1】:

mktime()localtime() 的倒数,而不是 gmtime()

要获得 gmtime() 的倒数,请参阅以下问题: Is there an inverse function for time.gmtime() that parses a UTC tuple to seconds since the epoch?

【讨论】:

    【解决方案2】:

    mktime() 采用一个时间元组,其值为本地时间。因此,这将为您提供正确的答案:

    mktime(localtime(1404144000))
    

    如果您希望在 UTC 中对时间元组进行操作,则可以通过指定时区来完成转换:

    mktime(gmtime(1404144000))-timezone
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-14
      • 2017-10-09
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      相关资源
      最近更新 更多