【发布时间】:2019-11-13 10:33:27
【问题描述】:
考虑一台机器,它的时间在闰秒期间存在正午到正午的线性拖尾。
我想知道系统时钟如何在拖影期间提供准确的纪元时间。
例子:
闰秒定于 2016 年 12 月 31 日。
在机器上,12 月 31 日 11:59:00 的 Unix 时间戳为
1483185540- 在中午开始拖尾,这意味着下午 1:30 的系统本地时钟已经落后于 TAI 和 UTC 几微秒。 Epoch 时间戳应为
1483191000(正好 1 小时 31 分钟后),由于 Epoch 不考虑闰秒,因此不再精确到 TAI/UTC - UTC 在下午 12 点增加一秒:晚上 11:59:60,本地拖尾时钟应正常继续
- 直到 1 月 1 日中午,全球 UTC 和本地 UTC 再次同步,本地 Epoch 时钟现在比全球 Epoch/TAI 落后整整一秒
如何解决这个不准确的问题?一旦系统知道发生了闰秒,本地 Epoch 时间是否会跳过一秒?或者这个问题是如何处理的?
它是否取决于用于计算时间的时钟的实现?如果是这样,GNU 的 coreutils date 是如何处理这个问题的?
【问题讨论】:
标签: date time gnu unix-timestamp leap-second