【发布时间】:2018-06-27 22:39:16
【问题描述】:
似乎检查它是否是 xx:00:00 UTC/GMT 就像检查 timestamp % 3600 == 0 是否一样简单,时间戳 = 自 epoch (1970-01-01 00:00:00) 以来经过的秒数.我们可以在这里看到:
import datetime
print datetime.datetime.fromtimestamp(3600*24*17000)
# 2016-07-18 02:00:00
但这不是与leap seconds 矛盾吗?实际上,从 1970-01-01 00:00:00 到 2016-07-18 02:00:00 之间经过的秒数不是 3600 的倍数,而是的倍数3600 + 26 闰秒(从 1972 年到现在有 26 个闰秒)。
更准确地说:1970-01-01 00:00:00 和 2016-07-18 02:00:00 之间经过的秒数是 3600*24*17000 + 26 而不是 3600*24*17000.
【问题讨论】:
-
许多(大多数?)计算机系统跟踪Unix Time。
-
为什么需要这个?如果要在午夜(或一天中的其他时间)运行一些代码,有更好的方法。
-
@Thomas 我知道
cron和类似的 Python 调度工具,但我不需要它,我只是想知道 UNIX 时间戳是如何工作的。
标签: python datetime time utc leap-second