當前位置:首頁 » 電腦資訊 » 為什麼蘋果時間只能到2038年

為什麼蘋果時間只能到2038年

發布時間: 2022-11-03 15:12:05

⑴ 手機日期只能設置到2038年這背後有個大問題……

世界末日到底是哪一天?這個無厘頭的問題一直有著各種各樣的離奇答案。當你打開手機,關閉自動設置時間,往未來的方向滑動數字時,你會發現時間停在了2038年。



不僅是手機,在電腦上,當你嘗試將時間從2037年再往上調整時,會發現不管怎麼按設置按鈕,日期都不會繼續改變。



2038年到底會發生什麼?為什麼各種設備都無法「逾越」2038年?在網上搜尋2038,你還能發現有人專門設置了倒計時網頁。這其中包含了一個更加精確的時間: 2038年1月19日 3點14分7秒 。而下一秒,你的電子設備將會 穿越回到1901年


著名的 「2038問題」 ,將在此刻爆發。




問題發生在2038年1月19日 3點14分7秒的下一秒。這一天的03:14:08不會到來, 迎接你的將會是 1901年12月13日20:45:52



對於很多電子設備而言,這是個毀滅性的打擊。文件的創建與修改、應用軟體的運行、網路系統的同步…… 時間作為一個關鍵數值,在整個電子系統里起著絕對重要的作用 。因此有一陣子蘋果手機的語音助手Siri,還把這一天當成了「世界末日」。為什麼是這一天?Siri回答中的關鍵詞也給出了答案。



Unix、32位,這兩個詞讓2038年的這一天註定成為末日。Unix是一種操作系統,這種系統中計時方式是以1970年1月1日 00:00:00為基準,按秒為單位進行增減。比如到2022年1月1日0點,只需要 用基準值加上1640966400秒 。而我們現在使用的安卓、蘋果系統都屬於類Unix系統,採用了同樣的方案。


電子系統使用0和1對數據進行儲存,也就是二進制。如果只用1位數,只能表示0和1,如果2位數,則可以用00、01、10、11分別表示0、1、2、3這四個數。隨著位數的增加,二進制可以表示的數也越來越大,但總會遇到上限。如果用32個0、1儲存數字,第一位表示符號, 0代表+,1代表- ,則剩下31位 最大可以表示2147483647 。在計算機資源非常寶貴的年代,用32位來放置時間,已經很夠用了。


1970年1月1日00:00:00 + 2147483647秒 = 2038年1月19日 3點14分7秒。 下一秒,數據就會出現「裝不下」的情況,發生溢出 。此時第一位符號位從0變成1,本來的加號變成了減號,時間突然穿越到過去。


(從上到下分別是二進制秒數、對應的十進制秒數、32位Unix系統時間、實際時間。超過2147483647後,符號位會變成1(負號),整個數字會突然發生翻轉,回到1901年。)


這個存在於將來的問題,它會給我們帶來怎樣的影響?回溯過往, 一次又一次的「千年蟲」問題已經給了我們一些預告



2000年,千禧年。而在很多應用程序看來, 這一年會變成1900年


同樣因為硬體資源寶貴,早期程序使用了年份的後兩位數字來表示日期,而 前兩位數都默認為19 。這個不起眼的時間問題,在整個世界引發了巨大的關注。政務系統、銀行系統、航空系統等多個系統都可能受到影響而失效。全球各地對這一問題進行了響應,試圖解決這一問題。我國多次發文強調這一問題的重要性。美國也推出了有關千年蟲問題的法案,以敦促各行業共享信息解決此類問題。



多虧人們對「千年蟲」的高度重視,使得這一問題在集中爆發前得以解決。但在此之後,類似「千年蟲」的事件卻依然層出不窮。


2010年的第一周,德國約3千萬張銀行卡同時「失效」。持卡人不僅無法直接刷卡消費,連在自動取款機上取錢都成問題。這不僅影響了本國居民的生活,也使得在外度假的德國人滯留在當地。


由於不同編碼方式存在差異, 2010在德國的銀行系統中被錯誤地識別成2016 。銀行卡也因此「被過期」了。同樣的情況出現在使用Windows Mobile系統的手機上: 你在2010年第一天收到的新年簡訊,會被系統顯示成2016年


德國加速修復了銀行系統,所幸沒有造成更大的損失。但放眼太空,事情就沒那麼簡單了。2013年9月,航天器Deep Impact突然失聯,迫使美國航空航天局宣布相關探測任務正式結束。Deep Impact的首席任務科學家 Mike A'Hearn認為,這是一個「千年蟲問題」。 航天器的部分軟體無法正確識別2013年8月11日之後的日期,導致計算機不斷重啟 。最終,科學家們失去了航天器的信號。



就在今年年初,「2022年蟲」讓微軟的程序員體會了新年大加班。1月1日,微軟的郵件服務系統Exchange突然中斷,使用該服務的用戶都無法發送電子郵件。 微軟隨後給出了聲明,稱該問題與日期檢查失敗以及新年的變化有關 。簡單點說,和2038問題一樣,時間「溢出」了。好在微軟團隊加班加點,在當天解決了該問題。


在未來,「類千年蟲」問題一定還會出現。對於可以預料的問題,人們已經開始嘗試提供解決方法。比如使用新的格式存儲時間信息。與此同時,系統團隊提供的新內核也在解決32位平台上的「 歷史 問題」。你也不用太擔心,畢竟到那時,你應該已經換了好幾波手機了。


不過,再遇到類似的突發Bug也很正常。 因為世界上總在發生情理之中、意料之外的事情

參考文獻

[1]Year 2038 Problem Countdown. https://gregnk.com/2038/

[2]The Project 2038 Frequently Asked Questions (FAQ). http://www.deepsky.com/~merovech/2038.html#What_operating_systems_and_platforms_are_affected_by_it

[3]Why does Siri say the world will end on January 2038? https://www.quora.com/Why-does-Siri-say-the-world-will-end-on-January-2038

[4]Unix time. https://en.wikipedia.org/wiki/Unix_time

[5]Unix Time Stamp - Epoch Converter. https://www.unixtimestamp.com/

[6]Unix-like. https://www.computerhope.com/jargon/u/unix-like.htm

[7]2038年問題. https://zh.wikipedia.org/wiki/2038%E5%B9%B4%E9%97%AE%E9%A2%98

[8]中國解決計算機2000年問題的進展情況. http://www.scio.gov.cn/xwfbh/xwbfbh/wqfbh/1999/1201/Document/328000/328000.htm

[9]話說「千年蟲」. http://www.people.com.cn/item/hs2000/july.html

[10]Clinton Urges Americans To Act On Y2K Problem. https://edition.cnn.com/ALLPOLITICS/1998/07/14/clinton.y2k/

[11]Y2K-type bug hits German cash, credit cards. https://www.eetimes.com/y2k-type-bug-hits-german-cash-credit-cards/

[12]Carry cash as well as a card, says German bank association. https://www.computerworld.com/article/2759697/carry-cash-as-well-as-a-card--says-german-bank-association.html

[13]Windows Mobile Bug Dates Messages from 2016. https://www.wired.com/2010/01/windows-mobile-bug-dates-messages-from-2016/

[14]NASA Declares End to Deep Impact Comet Mission. https://www.nationalgeographic.com/science/article/130920-deep-impact-ends-comet-mission-nasa-jpl#:~:text=NASA%20officials%20declared%20the%20Deep,July%204%20of%20that%20year.

[15]Exchange Year 2022 Problem: FIP-FS Scan Engine failed to load – Can』t Convert 「2201010001」 to long (2022/01/01 00:00 UTC). https://borncity.com/win/2022/01/01/exchange-fip-fs-scan-engine-failed-to-load-cant-convert-2201010001-to-long-1-1-2022/

[16]Email Stuck in Exchange On-premises Transport Queues. https://techcommunity.microsoft.com/t5/exchange-team-blog/email-stuck-in-exchange-on-premises-transport-queues/ba-p/3049447


作者:Owl

編輯:窗敲雨

科學審核:Andrija


本文來自果殼,未經授權不得轉載.

如有需要請聯系[email protected]

⑵ 蘋果6plus手機時間調整不了,不顯示圖片,還老是2038年怎麼辦

1、首先你要把手機「定位」功能開戶了,我們在桌面「設置--->隱私--->定位服務」可以了

⑶ iphone6調日期為什麼只能調到2038年

不光iPhone6,所有手機都只能調到2038年,詳情看右邊的鏈接→_→http://g.pconline.com.cn/bbs/topic-9983673.html

⑷ 蘋果手機時間調不了了,還老顯示是2038年怎麼辦

把它設置成網路自動對時

⑸ 蘋果6plus手機時間調整不了,不顯示圖片,還老顯示是2038年怎麼辦

主要是手機使用時間長,系統不穩定造成的。
1.打開手機設置選擇通用。
2.選擇清除所有設置。

⑹ ios15日期只能調2038

ios15日期只能調2038年。不僅是蘋果手機,其他品牌手機也是這樣的,而且在電腦上也是這樣的。
2038年到底會發生什麼?為什麼各種設備都無法「逾越」2038年?在網上搜尋2038,你還能發現有人專門設置了倒計時網頁。其實是因為我們這些系統都是採用二進制。

⑺ 蘋果ios設備日期設置到1970年變磚怎麼辦

摘要:最近在網上沸騰的iOS時間bug鬧的沸沸揚揚,據說是將iOS系統時間修改為1970/1/1,重啟後系統將永遠無法開機。那麼這個事情是真的嗎?如果是真的有什麼合理的解釋嗎?想要真正了解這一bug,您可能需要以下知識。

UNIX時間戳
在確認這件事情的真假前,你需要了解的一個知識是Unix時間戳。
iOS系統時間使用Unix時間戳(Unix epoch)表示(time_t數據類型)。在系統中,使用系統位數個二進制位儲存時間。
Unix時間戳規定,UTC時區的1970年1月1日 0點0時0秒的值為0,以秒為單位,即每過一秒,二進制數字加1。
不能往前調,那我把時間往後調
有些好奇的朋友拿出了自己手機,心想:既然我不能往回調,那我要是把時間使勁往後調能怎樣?
細心的朋友發現了一個問題,iOS系統可以設置的最大時間是2038年1月1日,並不能再往後設置。蘋果一定考慮到了這個問題,為什麼這么說呢?
我們拿32位系統舉例。在32位系統中,time_t是長度為32位的,有符號整數(signed int)類型。首個二進制位是符號位,用來儲存正負。正數則為1970/1/1以後的時間,負數反之;其餘的31位用來記數。當時間到達2038年1月19日 3時14分08秒時,數值位全部向前進1,導致符號位被置1,其餘31位為0。介時,將出現『時間回歸』的情況,系統時間變為1901年12月13日 20時45分52秒,系統將會出現錯誤。

所以Apple為了避免這種問題導致的錯誤發生,將最大時間期限定在了2038年1月1日 23時59分59秒。這樣即使超出這個范圍,在18天內也不會有太大問題,況且32位設備到那個時候基本都已經淘汰了。
64位系統會不會受到這個影響呢?通過計算我們可以得到,292,277,026,596年12月04日 15時30分08秒是64位系統可以表示的最大時間。
如果你想了解更多關於32位系統在2038將出現的問題,請移步: Year 2038 problem。
64位處理器的『時間回歸』問題
有了剛才的知識儲備,現在我們回到正題,開始探討搭載64位處理器設備的時間bug。
我們說到了以UTC時區的1970年1月1日 0點0時0秒為界限,數值為0,時間正常流逝為正數,反之為負數。不過各位需要留意的是,時間受到時區的影響。
假設一種情況,我原來是北京時區,假設將時間設置到了1970年1月1日 0點0時0秒,那麼我將這個時間轉換為UTC時間,公式:北京時間 = GMT+8 = UTC+8,那麼UTC時間則為1969年12月31日 16時0分0秒。這樣就會出現時間負值,即時間回歸bug觸發,系統啟動卡在Kernel階段,時間錯誤,無法繼續進行啟動。
觸發bug條件與表現
滿足以下條件,『時間回歸』bug被觸發:
系統版本:iOS 8.0 ~ iOS 9.3 beta 3
硬體設備:搭載64位處理器的設備(即處理器為A7~A9X的設備)

進入『設置』-『通用』-『時間與日期』,關閉『自動設置』,並將時間修改為1970年1月1日,分秒任意。
修改時間後,需要重啟設備。
Bug觸發表現:iOS設備啟動時,卡在蘋果Logo,無法繼續啟動。
解決方案
針對所有64位處理器的iOS設備

拆機並拆出電池,放置10分鍾後重新安裝。
電量充足的情況下,等待數小時,當Unix時間戳的數值大於等於0,系統時間生效,可正常開機。
針對已越獄設備的防範
1、添加Cydia源 http://repo.ziph0n.com/
2、並安BrickingDate插件
注意:此插件只可以防止人為修改時間,並無法防止代碼惡意篡改時間(安裝效果如下圖)。

Bug危害分析
黑客可以利用此bug通過無線區域網發出范圍性攻擊。
當iOS設備連接到公共網路時,iOS系統將會使用NTP服務對時區、時間進行校準。如果黑客發送惡意的NTP攻擊,將iOS系統時間校準至UTC < 0的時間,那麼所有用戶設備均會受到此bug影響,在重新啟動設備後無法使用設備。

引用鏈接:
http://digi.163.com/16/0214/09/BFPB66GE00162OUT.html

⑻ 蘋果6plus手機時間調整不了,不顯示圖片,還老是2038年怎麼辦

1、首先你要把手機「定位」功能開戶了,我們在桌面「設置--->隱私--->定位服務」可以了
2、設置時間。
然後我們再回到iphone6桌面點擊「設置--->通用--->日期與時間」
注意:有些朋友是把定位關了而自己又沒設置自己所在區所以時間就顯示不對了哦。

⑼ iphone把時間調到1970年1月1怎麼變回來

先來簡單說一下這個Bug觸發時的表現,如果用戶進入【設置】—【通用】—【時間與日期】,關閉【自動設置】,並將時間修改為1970年1月1日,分秒任意。修改時間後,需要重啟設備。然後該設備啟動時,則會卡在蘋果Logo,無法繼續啟動。
iPhone時間調到1970年1月1日變磚Bug原理:
說到IOS時間Bug,則必須要介紹一下Unix時間戳,IOS系統時間是使用Unix時間戳(Unix epoch)表示(time_t數據類型)的。Unix時間戳規定,UTC時區的1970年1月1日 0點0時0秒的值為0,以秒為單位,即每過一秒,二進制數字加1。
以32位系統為例,在32位系統中,time_t是長度為32位的,首個二進制位是符號位,用來儲存正負。正數則為1970/1/1以後的時間,負數反 之;其餘的31位用來記數。當時間到達2038年1月19日3時14分08秒時,數值位全部向前進1,導致符號位被置1,其餘31位為0。此時,將出現 【時間回歸】的情況,系統時間變為1901年12月13日20時45分52秒,系統將會出現錯誤。為了避免這個錯誤,蘋果將最大時間設定為2038年1月 1日23時59分59秒。而64位系統的最大時間限額將為292,277,026,596年12月04日15時30分08秒,基本可以說是不受這個限制的 了。
知道上面這個知識點後,我們再來說一下時區對時間的影響,大家都知道,我們所在的時區是【北京時區】,假如我們將時間設置在1970年1月1日0點0時0 秒,北京時間=GMT+8=UTC+8,UTC時間則為1969年12月31日16時0分0秒。這樣就會出現時間負值,即時間回歸bug觸發,系統啟動卡 在Kernel階段,時間錯誤,則無法繼續進行啟動。
iPhone時間調到1970年1月1日變磚觸發該bug條件與表現:
滿足以下條件,『時間回歸』bug被觸發:
系統版本:IOS 8.0 ~ IOS 9.3 beta 3
硬體設備:搭載64位處理器的設備(即處理器為A7~A9X的設備)
進入『設置』-『通用』-『時間與日期』,關閉『自動設置』,並將時間修改為1970年1月1日,分秒任意。
修改時間後,需要重啟設備。
Bug觸發表現:IOS設備啟動時,卡在蘋果Logo,無法繼續啟動。
iPhone時間調到1970年1月1日變磚解決辦法:
對於所有64位系統,需要拆機,並拆出電池,放置一段時間後,重新安裝即可。如果電池電量充足,等待數小時,當Unix時間戳的數值大於等於0,系統時間生效,可正常開機。
需要提醒大家的是,當IOS設備連接到公共網路時,IOS系統將會使用NTP服務對時區、時間進行校準。如果黑客發送惡意的NTP攻擊,將IOS系統時間校準至UTC小於0的時間,那麼所有用戶設備均會受到此bug影響,在重新啟動設備後無法使用設備。

⑽ 蘋果手機怎麼把時間調到2035年以後,現在顯示,只有2034年

這是手機的一個程序設定沒辦法更改的等下次系統更新了之後一直要系統升級他就可以調到以後了。

熱點內容
為什麼我的小米手機聲音那麼小 發布:2024-11-08 23:41:43 瀏覽:667
我為什麼一到晚上就不開心 發布:2024-11-08 23:26:02 瀏覽:583
為什麼鍵盤老不好用 發布:2024-11-08 23:21:53 瀏覽:770
為什麼我在一區都不好玩 發布:2024-11-08 22:59:17 瀏覽:425
電視機亮度為什麼沒有手機高 發布:2024-11-08 22:58:19 瀏覽:895
女人為什麼三月沒來月經 發布:2024-11-08 22:21:54 瀏覽:767
閑魚寵物貓為什麼那麼便宜 發布:2024-11-08 22:21:06 瀏覽:272
為什麼還花唄的時間是20號 發布:2024-11-08 22:15:25 瀏覽:908
b站緩存文件為什麼不能直接看 發布:2024-11-08 22:13:05 瀏覽:237
淘寶上的天王表為什麼這么便宜 發布:2024-11-08 22:13:04 瀏覽:122