技術中(zhōng)心

這裏象征着我(wǒ)(wǒ)們的态度和能力

爲什麽計算機時間和衆多編程語言要從1970年1月1日開(kāi)始算起
發布者:admin    信息來源:本站原創    發布時間:2015-08-13      浏覽次數:9116
分(fēn)享到:

  今天我(wǒ)(wǒ)們來讨論一(yī)個非常有意思的事,那就是你知(zhī)道爲什麽計算機時間和衆多的編程語言的時間都要從1970年1月1日開(kāi)始算起呢,時間計時起點到底爲什麽是 1970年1月1号呢?我(wǒ)(wǒ)想大(dà)家應該都知(zhī)道,但是我(wǒ)(wǒ)估計大(dà)家幾乎大(dà)部分(fēn)都沒有想過這個問題。我(wǒ)(wǒ)們就一(yī)起來聊聊,這是爲什麽?

  1、最懶的解釋
  很多編程語言起源于UNIX系統,而UNIX系統認爲1970年1月1日0點是時間紀元,所以我(wǒ)(wǒ)們常說的UNIX時間戳是以1970年1月1日0點爲計時起點時間的。
  說了這個懶人的解釋,估計大(dà)家還沒有懂得真正的意思。所以我(wǒ)(wǒ)們接下(xià)來深入的了解一(yī)下(xià)。
  2、深入的了解
  最初計算機操作系統是32位,而時間也是用32位表示。
  System.out.println(Integer.MAX_VALUE);
  2147483647
  Integer 在JAVA内用32位表示,因此32位能表示的最大(dà)值是2147483647。另外(wài)1年365天的總秒數是 31536000,2147483647/31536000 = 68.1,也就是說32位能表示的最長時間是68年,從1970年開(kāi)始的話(huà),加上68.1,實際最終到2038年01月19日03時14分(fēn)07秒,便會到 達最大(dà)時間,過了這個時間點,所有32位操作系統時間便會變爲10000000 00000000 00000000 00000000,算下(xià)來也就是1901年12月13日20時45分(fēn)52秒,這樣便會出現時間回歸的現象,很多軟件便會運行異常了。
  到這裏,我(wǒ)(wǒ)想問題的答案已經顯現出來了,那就是:因爲用32位來表示時間的最大(dà)間隔是68年,而最早出現的UNIX操作系統考慮到計算機産生(shēng)的年代和應用的 時限綜合取了1970年1月1日作爲UNIX TIME的紀元時間(開(kāi)始時間),至于時間回歸的現象相信随着64爲操作系統的産生(shēng)逐漸得到解決,因爲用64位操作系統可以表示到 292,277,026,596年12月4日15時30分(fēn)08秒,相信我(wǒ)(wǒ)們的N代子孫,哪怕地球毀滅那天都不用愁不夠用了,因爲這個時間已經是千億年以後 了。

4000-880-989
(24小(xiǎo)時熱線)
聯系客服
微信公衆号

官方公衆号

小(xiǎo)程序

©2008-2022 CORPORATION ALL Rights Reserved. 西山區唯美網絡科技工作室版權所有 滇公網安備