Unix时代的时间如何在飞跃涂抹的时钟上表现



考虑一台机器,其时间在leap秒内用中午到noon线性涂片涂抹。

我想知道系统时钟如何在涂片期间提供准确的时期时间。

示例:

  • leap第二次计划于2016年12月31日。

  • 在机器上,12月31日11:59:00的Unix时间戳是1483185540

  • 中午开始涂抹,这意味着系统的本地时钟在下午1:30,已经在TAI和UTC之后几微秒。时期时间戳应为1483191000(恰好1小时31分钟(,这对TAI/UTC不再准确,因为Epoch不尊重Leap seconds
  • UTC在12pm添加了额外的一秒钟:11:59:60 pm,本地涂片时钟应正常继续
  • 直到1月1日中午,全球UTC和本地UTC再次同步,现在,本地时期的时钟现在落后于全球时代/tai

这种不准确是如何解决的?一旦系统知道第二次跃升,当地时代时间是否会跳过一秒钟?或该问题如何处理?
这是否取决于用于计算时间的时钟的实现?如果是这样,GNU的CORUTILS date如何处理此操作?

未解决不准确性。自1970-01-01-01 00:00自1970-01-01 00:00 UTC(不包括插入的LEAP秒(以来,UNIX时间仍然是秒数。这具有使秒数易于转换为 {year, month, day, hour, minute, second}表格的好处。

有一个问题,即跨第二个插入的两个Unix时间点的减法将导致时间持续时间比现实少一秒钟。

相关内容

  • 没有找到相关文章

最新更新