考虑一台机器,它的时间在闰秒期间出现了正午到正午的线性拖尾。
我想知道系统时钟如何在涂抹期间提供准确的纪元时间。
例子:
闰秒定于 2016 年 12 月 31 日。
在机器上,12 月 31 日 11:59:00 的 Unix 时间戳是
1483185540
- 中午开始涂抹,这意味着下午 1:30 系统的本地时钟已经比 TAI 和 UTC 落后几微秒。Epoch 时间戳应该是
1483191000
(正好 1 小时 31 分钟后),因为 Epoch 不考虑闰秒,所以它不再准确到 TAI/UTC - 在 12pm UTC 增加一秒:11:59:60 pm,本地拖尾时钟应正常继续
- 直到 1 月 1 日中午,全球 UTC 和本地 UTC 再次同步,本地 Epoch 时钟现在落后全球 Epoch/TAI 整秒
这种不准确是如何解决的?一旦系统知道发生了闰秒,本地 Epoch 时间是否会跳过一秒?或者这个问题是如何处理的?
它是否取决于用于计算时间的时钟的实现?如果是这样,GNU 的 coreutils 是如何date
处理这个问题的?