改变时间!2035年闰秒将取消

据《自然》报道,11月18日,世界各国政府代表在法国巴黎举行的度量衡大会(CGPM)上作出决定——从2035年起暂停在官方时钟上增加“闰秒”以使其与地球自转同步。

  这意味着从2035年或更早时间开始,天文时间(UT1)将被允许与协调世界时(UTC)相差1秒以上,后者是基于原子钟的稳定计时。自1972年以来,每当这两个时间系统的偏差超过0.9秒时,就会增加1个闰秒。

  CGPM在掌管时间计量的同时也负责监督国际单位制(SI)。CGPM建议,至少在一个世纪内不应该增加闰秒,并允许UT1和UTC拥有约1分钟的误差。

什么是闰秒

闰秒:人类引入的不规则操作

所谓闰秒,就是在正常计时之外再增加一秒,借此保证时钟能与地球的实际自转时长保持同步。

闰秒在概念上与闰年类似,也是一种不定期的出现在我们的计时系统中的时间度量单位。它的存在与两个重要的计时系统——协调世界时(UTC)世界时(UT1)——之间的差异有关。

  • 协调世界时,也就是UTC,是一种基于原子钟的振荡周期的计时系统。它是通过将大约400个原子钟的信号平均计算得出的,这种原子时非常精确,是国际时区的参考标准。
  • 世界时,即UT1,则是一种天文时,它由地球自转决定。但地球自转实际上并不稳定,这就导致一天的长度可能并非精准地由86400标准单位秒构成。

原子时的时间尺度更为均匀,而世界时由于地球自转速度不均匀,两者之间会存在差异。当两者之间的差异超过 0.9 秒时,国际地球自转服务组织(IERS)就会负责将世界标准时间调快或拨慢一秒,这就是闰秒

自 1972 年以来,全球各计时机构已经在国际原子时(TAI)标准时钟上添加过 27 次闰秒。而具体方法并不是直接把午夜 23:59:59 直接计作 0:0:0,而是额外增加一个 23:59:60。

目前,我们只添加了正闰秒。在早期,就是通过简单粗暴地增加一秒来完成的,从而产生一个不寻常的时间戳:23:59:59 -> 23:59:60 -> 00:00:00

闰秒危机

世界最高山脉上的冰盖不断融化和重新冻结,以及潮汐摩擦都是导致地球自转不规则的众多因素之一。
因为地球的自转速度不规则地变化,所以闰秒的间隔也是不规则的。而从长远来看,地球的自转是相当不可预测的,这解释了为什么闰秒只提前六个月宣布。
但随着地球自转模式的变化,我们很可能在未来的某个时刻出现负闰秒。时间戳将如下所示:23:59:58 -> 00:00:00
正闰秒的跳跃会让程序崩溃或导致数据损坏;而更重要的是我们还从未大规模测试过负闰秒的破坏性影响。无论如何,对于管理硬件基础设施的人来说,每一个闰秒都是痛苦的来源。
在最初被提出时,闰秒的确是处理这种偏差的一个有效解决方案。然而,随着数字世界的崛起,闰秒造成的问题变得越来越严重
假设我们有这样的代码:

1
2
3
4
5
start := time.Now()

// do something

spent := time.Now().Sub(start)

那么最后可能会在闰秒事件期间,“spent”值会出现依赖负数的情况,从而导致了程序崩溃。

闰秒于 1972 年被引入,迄今为止已经增加了 27 个正闰秒。每一次增加闰秒,都会在整个软件行业中引发问题。毕竟无数计算设备需要依靠精确的计算服务器网络,才能有序安排事件、记录活动先后,比如向数据库内添加数据条目,如果处理不好就会出现脑裂或其他问题。

闰秒的变化曾在 2012 年引发 Reddit 论坛的大规模中断,同时给 Mozilla、LinkedIn、Yelp 以及船家预订服务商 Amadeus 造成了不小的麻烦。

虽然了解了闰秒的影响,但 bug 并没有因此而消失。最近一次闰秒是在 2017 年,网络基础设施服务商 Cloudflare 还是因闰秒导致一部分客户服务器宕机。当时 Cloudflare 软件比较了两种时间,并发现时间似乎在“倒退”,于是因无法处理这自相矛盾的结果而陷入崩溃。

计算机在处理数字方面绝对是一把好手,但人类引入的闰秒这类不规则操作,则会打破计算机那完美无瑕的内部逻辑。影响力最大、知名度最高的此类问题当数“千年虫”,当初人类在编写数据库时只记录下年份的最后两位数字。于是当 1999 年过去、2000 年来临时,混乱也随之出现。另外还有个相关问题,一部分计算机系统是以 1970 年 1 月 1 日为起点,使用 32 位数字按秒计算日期的。而 32 位数字对应的秒最多只能表达到 2038 年,再往后数位就不够用了。

为了解决计算机时钟处理不了一分钟 61 秒的难题,谷歌率先提出了“闰秒涂片”的办法,通过调整内部的网络时间协议 (NTP) 服务器,把闰秒拆分成许多微小的步长变化、分摊到一整天当中。Meta 也采用了类似方法,一个闰秒要花 17 个小时来“抹平”。
不同系统的调整方法没有一个统一标准,小网站则更多依赖公共时间服务器,直接停 1 秒或者跳 1 秒,不会把时间切分成时间片;谷歌大厂的这些方法,在调整过程中如果有突发事件,比如某些服务器宕掉了,还是会存在问题。

废除闰秒

在意识到这些问题的严重性后,许多国家(比如美国、加拿大、法国)和一些科技公司(如谷歌和Meta等科技巨头)便开始呼吁要在2035年之前废除闰秒。

不过,也有像俄罗斯这样的国家提议应该将暂停日期至少推迟到2040年之后。这是因为俄罗斯的GLONASS是唯一一个包含闰秒的全球卫星导航系统,他们需要时间来处理废除闰秒后将面临的技术难题。

另外,如果废除闰秒,那么依靠UT1来校准天文望远镜的天文学家也将受到影响:这会使他们运行的软件将要处理UTC(定义了恒星和星系在天空中出现的时间)与UT1之间超过1秒的偏差。

不过,作出这样的决议并不表示计量学家们要放弃让UTC与UT1保持一致,而是因为他们更多地意识到当前的闰秒系统缺点太多,造成的问题越来越严重,因此必须在造成更重大的破坏之前采取行动。