考虑一台机器,在闰秒期间时间被线性平滑至中午到中午的状态。
我想知道系统时钟在平滑期间如何提供准确的纪元时间。
例如:
- 闰秒计划于2016年12月31日进行。 - 在这台机器上,2016年12月31日11:59:00的Unix时间戳为1483185540。 - 中午时分开始平滑,这意味着系统当地时钟在下午1:30已经比TAI和UTC慢了几微秒。 纪元时间戳应该是1483191000(正好晚了1小时31分钟),不再准确地遵守TAI / UTC,因为纪元不考虑闰秒。 - UTC在12:00添加一个额外的秒:11:59:60 pm,本地平滑的时钟应该继续正常运行。 - 直到1月1日中午全球UTC和当地UTC重新同步,当地纪元时钟现在比全球纪元/ TAI慢一个整秒。
这种不准确性如何解决? 一旦系统知道闰秒发生,本地纪元时间是否会跳过一秒钟? 或这个问题如何处理?
这是否取决于用于计算时间的时钟实现? 如果是这样,GNU的coreutils日期如何处理这个问题?
我想知道系统时钟在平滑期间如何提供准确的纪元时间。
例如:
- 闰秒计划于2016年12月31日进行。 - 在这台机器上,2016年12月31日11:59:00的Unix时间戳为1483185540。 - 中午时分开始平滑,这意味着系统当地时钟在下午1:30已经比TAI和UTC慢了几微秒。 纪元时间戳应该是1483191000(正好晚了1小时31分钟),不再准确地遵守TAI / UTC,因为纪元不考虑闰秒。 - UTC在12:00添加一个额外的秒:11:59:60 pm,本地平滑的时钟应该继续正常运行。 - 直到1月1日中午全球UTC和当地UTC重新同步,当地纪元时钟现在比全球纪元/ TAI慢一个整秒。
这种不准确性如何解决? 一旦系统知道闰秒发生,本地纪元时间是否会跳过一秒钟? 或这个问题如何处理?
这是否取决于用于计算时间的时钟实现? 如果是这样,GNU的coreutils日期如何处理这个问题?
<chrono>
库的问题。将会有一个包含经典Unix时间(包括不忽略闰秒的真正UTC时钟),以及基于TAI和GPS标准的时钟/时间点集合数组供用户选择。现有的<chrono>
库还支持一个单调时钟(对于那些不需要与公历有关系的时间戳)。 - Howard Hinnant