我刚刚发现 Unix 时间不包括闰秒。我认为这很令人惊讶,因为这样做会慢慢偏离 UTC ……但这不是我的问题的重点。
编辑(3x):简而言之,更多讨论见下文和评论:
假设系统时钟遵循 Unix/POSIX 时间(不是“真正的”UTC),如何获得自 Unix 纪元(来自date
或任何其他程序)以来经过的实际秒数?
或者,至少,Linux 中是否有“闰秒”文件,我可以在其中获得闰秒而无需手动下载它们?
关于我如何得出系统时钟设置为 Unix 时间的结论的说明:
因此,为了最精确地确定相对于历史公历和 UTC 时间标度的纪元,用户必须从表观的 NTP 或 POSIX 纪元中减去IERS 提供的相关偏移量。
关于我如何得出date --utc +%s
真正给出我们所谓的“Unix 时间戳”的结论的解释:
第一个闰秒是在 1972 年 6 月 30 日引入的。
从 1970 年 1 月 1 日 00:00:00(Unix 纪元)到 1972 年 7 月 1 日 00:00:00,我们可以轻松计算出有 365 + 365 + (31+29+31+30+31+30) 天 + 1闰秒 = 912 天 + …