我最近阅读了很多关于 UNIX Time 的文章,其中大部分内容不连贯,大部分内容相互矛盾。我正在尝试协调 UNIX 时间(以下简称 UXT)、TAI 和 UTC 之间的转换,为此,我需要正确理解 UXT。问题是,我似乎找不到其他人这样做了。
以下是我通过繁琐研究从无数来源重建的最佳解释。也有哪里不对。 我正在寻找对以下内容的整体分析和逐点验证/反驳。本质上,修复以下内容以使其正常工作。
TAI 是一个单调递增的时间标准。它滴答 SI 秒,并忽略 DST 和闰秒。
UTC 与 TAI 相同,但通过整数个闰 SI 秒进行校正(转换为时间字符串将其反映为第 60 秒),以便在天文时间标准 UT1 的 0.9 SI 秒内。
UXT 是自 1970-01-01 00:00:00 UTC 以来的UNIX 秒计数。每天总是正好有 86400 秒。然而,UXT 与 UTC 相关。
这怎么可能?嗯,UNIX 秒需要与 SI 秒不同,并且因为闰秒不是完全规则的,UNIX 秒不能是一个明确定义的时间长度。
UNIX 规范第4.15 节中从 UTC 到 UXT 的转换将不同的 UTC 时间别名为相同的 UXT 时间戳,从而有效地使 UNIX 秒与 SI 秒相同(UNIX 闰秒除外,它们是两个 SI 秒)。
在实践中,实际发生的情况各不相同。大多数计算机基于远程服务器进行同步,因此它们在同步期间隐式地处理闰秒更新。
所有这一切意味着,虽然每个单独的 UXT 时间戳都可以轻松转换为 …