【问题标题】:How to get the number of hours since, from a UTC timestamp?如何从UTC时间戳获取小时数?
【发布时间】:2013-11-29 03:50:32
【问题描述】:

我有一个 UTC 时间戳,我想用 Python 计算从那时到现在的小时数。我该怎么做?

谢谢!

【问题讨论】:

  • datetime 模块在这里应该很有用。 datetime.datetime.now() 将为您提供当前时间,datetime.fromutctimestamp() 应帮助您转换现有的 UTC 时间戳。
  • dateutil 可以帮忙

标签: python datetime utc python-datetime


【解决方案1】:

datetime 是此处使用的模块(由于 UTC 要求):

def hours_since(timestamp):
    import datetime
    return (datetime.datetime.utcnow() - datetime.datetime.utcfromtimestamp(timestamp)).total_seconds() / 3600.

例子:

hours_since(1385715744.206451)
0.18432851777777778

【讨论】:

  • -1:它应该是utcfromtimestamp()(以UTC返回时间),而不是fromtimestamp()(返回本地时间)。自纪元以来的秒数(时间戳)不在 UTC 或任何其他时区。虽然如果我们忽略闰秒,很容易将时间戳转换为 UTC 时间。
  • @J.F.Sebastian 进行了更改。我没有注意到不一致,因为我的测试计算机设置为 UTC 时间。
  • +2 虽然,短语 "timestamp must be a UTC time stamp" 仍然没有意义(这是一个常见错误,但它并不成立通过重复,虽然它会在普通语音中实现:) Python 工作时间为 Epoch 以来的秒数(如果不是 POSIX 时间戳,stdlib 可能会中断)。
猜你喜欢
  • 2014-11-21
  • 2019-05-02
  • 2012-11-11
  • 2011-05-21
  • 2015-01-08
  • 2014-03-31
  • 1970-01-01
  • 2013-03-20
  • 2014-10-25
相关资源
最近更新 更多