写点什么

这一秒,困扰了程序员 50 年!

作者:Java你猿哥
  • 2023-04-27
    湖南
  • 本文字数:1562 字

    阅读完需:约 5 分钟

2012 年 6 月 30 日晚,美国著名新闻社交网站 Reddit 突然瘫痪了约 40 分钟,同一时间包括开源社区 Mozilla、领英等许多网站也突然崩溃,巧得一度令很多人摸不到头脑。

好在很快,事件的罪魁祸首就被发现了:闰秒。换句话来说,就是那天晚上出现了一个奇怪的时间——23:59:60。就因为多了的这一秒,让没有准备好的计算机程序产生异常并崩溃。

而如今,这个令无数科技企业“头疼”了许多年的闰秒,终于要被没了:近日,在法国巴黎闭幕的第 27 届国际计量大会上,与会代表通过一项决议,决定最迟在 2035 年取消闰秒。


一、闰秒从何而来?

人类对时间的精度和准确性要求越来越高,不仅仅是因为时间对人类社会的重要性,更是因为随着技术的进步,越来越多的领域需要精准的时间标准。因此,人类需要通过一些方式来保证时间标准的准确性。

为了确保全球时间标准的准确性,国际上设立了一个统一的时间标准——协调世界时(Coordinated Universal Time,简称 UTC)。UTC 是由原子钟时间和地球自转的平均时间构成的,它被广泛应用于全球的计时系统和通信网络。而闰秒就是为了保证 UTC 与地球自转的匹配而引入的一种时间调整方式。

闰秒是指为了使协调世界时(UTC)与地球自转周期保持一致而引入的一种时间校正。由于地球自转速度的微小变化以及其他天文因素的影响,协调世界时(UTC)与地球自转周期之间存在差异,这种差异可能会导致协调世界时(UTC)与地球时间的分离。因此,国际上引入了闰秒来纠正这种差异,使得协调世界时(UTC)与地球自转周期保持同步。

二、计算机中令人“头疼”的闰秒问题?

虽然闰秒的引入保证了全球时间标准的准确性,但是对于计算机系统来说,这也带来了一些问题。

由于闰秒的引入是在协调世界时(UTC)中添加一个额外的秒数,而计算机中的时间通常是以从某个固定时间点开始计算经过的秒数来表示的,因此,闰秒的引入会对计算机系统中的时间计算产生影响。一些计算机系统可能会在闰秒出现时出现错误,导致系统崩溃或数据丢失。这也使得一些科研和金融领域对于计算机时间精度的要求更加严格。

“协调世界时”以国际原子时秒长为基础,同时规定,当世界时与原子时之间时刻累计相差超过 0.9 秒时,就在“协调世界时”上加上或减去 1 秒,以尽量接近世界时——这 1 秒,就是闰秒。

此外,由于闰秒的引入时间是在临时确定的,通常是由国际地球自转服务机构(IERS)发布,因此,计算机系统需要及时更新闰秒信息。如果计算机系统没有及时更新闰秒信息,就会导致系统出现时间错误,从而影响计算机系统的稳定性和安全性。

三、呼吁废除闰秒

随着计算机系统的发展和技术的进步,越来越多的人开始呼吁废除闰秒制度,认为闰秒不仅给计算机系统带来了麻烦,同时也破坏了时间标准的稳定性和准确性。例如,在 2012 年 6 月 30 日的闰秒问题中,由于一些网络设备不能正确处理闰秒,导致互联网上的一些服务出现了故障,例如雅虎邮箱、LinkedIn 社交网站、Qantas 航空公司的计算机系统等,造成了重大影响。

根据一些相关机构的调研数据显示,大多数计算机系统的闰秒处理都是基于手动操作或者自动更新的方式,而这种方式无法确保系统的稳定性和准确性。另外,闰秒制度的引入还增加了计算机系统的维护成本和开发难度,同时也使得国际标准时间的计算和传输变得更加复杂和困难。

因此,越来越多的人开始呼吁废除闰秒制度。他们认为,如果废除闰秒制度,可以减少计算机系统的错误和故障,同时也能够简化国际标准时间的计算和传输。此外,废除闰秒制度还能够加强全球时间标准的稳定性和准确性,避免由于闰秒制度的引入导致的误差和偏差,从而更好地满足人类社会对时间的精度和准确性的要求。

然而,废除闰秒制度也面临着一些问题和挑战。例如,如果废除闰秒制度,那么如何确保国际标准时间与地球自转周期的同步?如何解决计算机系统中时间的精度和准确性问题?这些问题需要进一步的研究和探讨。

用户头像

Java你猿哥

关注

一只在编程路上渐行渐远的程序猿 2023-03-09 加入

关注我,了解更多Java、架构、Spring等知识

评论

发布
暂无评论
这一秒,困扰了程序员 50 年!_Java_Java你猿哥_InfoQ写作社区