2017 年 1 月 1 日這一天,全人類都被強(qiáng)續(xù)了 1 秒,因?yàn)檫@天有 24 小時 01 秒。
多出這一秒被塞到了北京時間 07:59:60 的位置。
這一秒也叫閏秒。

然而就在前段時間,亞馬遜、微軟、 Meta 、谷歌等國外科技巨頭聯(lián)合發(fā)起了一項活動,說要取消閏秒。
倒不是說他們不讓人多活一秒,而是因?yàn)?" 閏秒帶來的副作用,早超過它本身的價值 "。

雖說這提議已經(jīng)得到美國相關(guān)機(jī)構(gòu)的支持,但取消閏秒這么大的事,可不是一個國家說的算。
今天咱們簡單盤盤,閏秒能干啥,為啥現(xiàn)在又要取消。
>/ 為什么會有閏秒?
我們之前有 2 種主流時間標(biāo)準(zhǔn),一種是民用的世界時,一種是高精尖領(lǐng)域用的國際原子時。
世界時也可以說是格林尼治時間,它的一天時長是按地球平均自轉(zhuǎn)周期算的,時間點(diǎn)和太陽位置保持同步。
比如太陽在正頭頂,那就是中午 12 點(diǎn)。
但世界時有個問題,地球受到氣候、地殼運(yùn)動各種因素影響,自轉(zhuǎn)一周時間不一樣。
換句話說,世界時的一天并不是永恒的 24 小時,會有幾毫秒誤差。

這幾毫秒對世超沒啥影響,平時幾秒結(jié)束還是幾秒。
但對航空航天、衛(wèi)星導(dǎo)航等領(lǐng)域來說就不行了。
像衛(wèi)星定位,每一顆衛(wèi)星都在不斷發(fā)射包含位置和時間的無線電信號,精確度高達(dá)一米以內(nèi)和十億分之一秒。
即使誤差只有 0.1 秒,再乘以光速,衛(wèi)星定位就會差之千里。

所以高精尖領(lǐng)域用國際原子時計時。
國際原子時是通過原子震蕩頻率來計算時間的,可以精確到納秒。
這啥概念呢?我國最新的銫原子鐘(NIM 6),5400 萬年誤差不超 1 秒。

可能有人要問了,既然有原子時,咱老百姓干啥不用原子時?
因?yàn)榈厍蜃赞D(zhuǎn)一圈的時間變來變?nèi)ィ瑫r間一久,太陽的位置和原子時差距就越來越大。
一萬年后就可能出現(xiàn),晚上 11 點(diǎn)頭上頂個大太陽的情況。
然而,世界時也有問題,它每一天,每一秒長度都不一樣。
所以 1972 年,我們老百姓用了一個新標(biāo)準(zhǔn),叫協(xié)調(diào)世界時( Coordinated Universal Time 簡稱 UTC )。
你也可以叫它縫合怪。

它用原子時的計時速度,在和世界時誤差達(dá)到 0.9 秒,就會加減個 1 秒。
這樣一來,平時時間是精準(zhǔn)的,日子久了也不會和太陽位置不匹配。
這個為了保持同步,多出或摳掉的這一秒就是閏秒,目前全世界已經(jīng)加了 27 次閏秒。

>/ 閏秒帶來的問題
雖說閏秒解決了時間和地球自轉(zhuǎn)不匹配的問題,但也帶來了新麻煩。
比如我們要加一秒,那時間就會成為 23:59:59、23:59:60、00:00:00。
中間多了奇怪的 1 秒,人么無所謂,也就是多發(fā)一秒呆的事。
但很多服務(wù)器就頂不住了。

因?yàn)殚c秒和閏年不一樣,沒有規(guī)律可循,無法提前寫進(jìn)系統(tǒng)。
如果突然多出 1 秒,很多老程序不知道如何面對它,就會各種報錯。
比如 2012 年,閏秒導(dǎo)致了 Reddit、Mozilla、 LinkedIn、 Yelp 的服務(wù)器大規(guī)模宕機(jī)。

同年澳大利亞航空公司的一個辦理系統(tǒng)也死機(jī)了幾小時,被迫人工檢查乘客登機(jī)。
2017 年,閏秒還導(dǎo)致 Cloudflare 一部分客戶服務(wù)器離線。

這當(dāng)中原因有很多,我們簡單說一種。
因?yàn)榧恿艘幻腌姡芏嗳蝿?wù)會因?yàn)闂l件不匹配而啟動失敗,這時它們就會不停嘗試,一直循環(huán),直到把系統(tǒng)塞爆。
打個比方。
一棟樓的每層樓之間有 60 級臺階,送貨機(jī)器人每爬一層樓就會放一桶水,并收到一個回執(zhí)單,表示任務(wù)完成。
但這時某層有 61 級臺階,機(jī)器人還是上了 60 級就直接給水放下來,結(jié)果沒收到回執(zhí)單,然后它就一直放一直放,問題不就出現(xiàn)了么。
此外,還有一些更復(fù)雜的情況我們就不討論了。
雖說現(xiàn)在系統(tǒng)會為閏秒做一定適配,但誰保證一定不會出錯呢。
更關(guān)鍵的是下次不一定是加 1 秒,是減 1 秒。這情況目前還沒遇到過,誰敢保證不會有新問題呢。
>/ 該不該取消閏秒?
看到這里,大家也能理解這些科技巨頭為啥要取消閏秒了。
他們認(rèn)為取消閏秒,其實(shí)過個 1000 年都沒啥大問題,差不太多。

嗯,話這么說也沒錯,但后代可能要罵你了,問題丟給他們是吧?
其實(shí)早在十幾年前,就一直有人說要取消閏秒,但也有不少人反對。
" 系統(tǒng)崩潰明顯是自己沒處理好,其他人怎么就沒問題? "
" 閏秒讓大家維持了精確的時間,也讓大家沒脫離世界時,依然可以和地球自轉(zhuǎn),和太陽同步。"
還有更騷的反對原因,比如英國是因?yàn)殚c秒可以讓時間和世界時一致。
世界時也就是格林尼治時間,取消了閏秒,那引以為豪的格林尼治時間相當(dāng)于被拋棄了。
英國格林尼治皇家天文臺
大門外的 24 小時制電子大鐘 ▼

>/ 有沒有更好的方法?
當(dāng)然,這些科技巨頭也并不是想單純干掉閏秒,而是想要一種更好的方案。
比如 Meta 提出一個叫 Smearing 的方案,就是把 1 閏秒分散到 17 個小時里慢慢閏。

此前,谷歌搞的是一種 " 提前閏 " 的方案。
它在服務(wù)器時鐘里每天加個幾毫秒,這樣要加閏秒時,調(diào)整幅度就不至于觸發(fā)大問題。
還有人提出把閏秒換成閏分,閏時。意思就是每相差 59 秒再加一個閏分,降低一下調(diào)整頻率。
但不管怎么說,我認(rèn)為不管是閏秒,還是提前閏," 閏 " 這種機(jī)制一定要存在。
因?yàn)槿祟悓τ跁r間的概念,根本上還是來自太陽。
自古以來,咱們抬起頭看到太陽東邊升起就是上午,西邊落下就是晚上。
日出而作,日落而息。人類生活只要是和太陽綁定的,自然就離不開世界時。
只是這種和太陽保持聯(lián)系的方式,這種 " 閏 " 的機(jī)制,或許還需要一個更好的方案。
原文地址:http://www.myzaker.com/article/6303adf48e9f097ec75aaad2