爲何計算機等電子設備要用1970年1月1日作參考時間

          在java中用過System類下的 CurrentTimeMillis()或Date類的相關的時間、日期的方法函數的同學都知道,我們常要與1970年1月1日零時的時間做差值計算。很多同學或許做過,但是或許有一部分不知道爲什麼是這樣的,計算機工程師、物理科學家們可是相當聰明的人,他們爲何要這麼做呢?接下來,我就簡要談一談?

      1970.1.1是個神馬特殊的日子?爲什麼要給這個奇葩如此“殊榮”?原來,1970.1.1是被看作計算機的元年,最早出現的UNIX操作系統考慮到計算機產生的年代和應用的時限綜合取了1970年1月1日作爲UNIX TIME的紀元時間(開始時間),而java、數據庫、許多精密的儀器等也自然也遵循了這一約束。

       看完上面一段,或許就明白了,但是我覺得還是有必要多瞭解有一些相關小知識,“技多不壓身”。通常,國際上也有不少計時都是採用的GMT,全稱是GreenWich Mean Time,,現在一些電子設備時間的計算和顯示是以距曆元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利曆)的偏移量爲標準的,如1970-1-10 20:47 偏移量爲2724441632毫秒,出現類似字樣說明時間被初始化了。 但是我們在API文檔裏看到的是與UTC(Universal Time Coordinated)時間相關,

       -----UTC,協調世界時,又稱世界標準時間或世界協調時間,簡稱UTC(從英文“Coordinated Universal Time”/法文“Temps Universel Cordonné”而來),是最主要的世界時間標準,其以原子時秒長爲基礎,在時刻上儘量接近於格林尼治平時。中國大陸採用ISO 8601:2000的國家標準GB/T 7408-2005《數據元和交換格式 信息交換 日期和時間表示法》中亦稱之爲協調世界時。臺灣採用CNS 7648的《資料元及交換格式–資訊交換–日期及時間的表示法》(與ISO 8601類似)稱之爲世界協調時間。(參考維基百科)

        誠然UTC是一種更爲科學的計時標準,在今天相對論、量子學、弦論等高大上的日益發展、完善,時間的精確度越來越苛刻,或許,在不久的將來XXX計時標準又會出現。 然而,對於普通民衆來說,GMT、UTC的差別可以幾近忽略,因爲,協調世界時UTC與世界時GMT相差不會超過0.9秒,當大於此值時,位於巴黎的國際地球自轉事務中央局負責決定何時加入閏秒。

         還有一個有意思的類似 千年蟲Y2K BUG的問題,公曆的UTC時間2038年1月19日3時14分7秒. 到這天的凌晨3時14分8秒, UNIX時間會溢出並變成10000000 00000000 00000000 00000000(十進值-214748368), 也就是UTC時間1901年12月13日20時45分52秒, 引起和千年蟲類似的混亂.可是,也不必擔心,因爲,這描述的是使用32位操作系統的儀器將要出現的BUG,現在64位電腦操作系統已經很普遍,手機也出現了首款64位的操作系統(5s上運行的即是), 要等64位的出現這樣溢出的BUG,那得等到292,277,026,596年12月4日15時30分08秒,那時的事情我就不去想了,想了也是在自己跟自己瞎扯淡。

 

 

      文獻參考:

               1)爲什麼編程語言以及數據庫要從1970年1月1日開始計算時_無情無緒_新浪博客 http://blog.sina.com.cn/s/blog_61352f210100geai.html

               2)Java API文檔,System、Date類相關資料

               3)爲什麼計算機和一些電子產品的時間選擇在1970.1.1 - NEVER - 博客頻道 - CSDN.NET http://blog.csdn.net/jacqueslim/article/details/6909861此文被很多很多博主轉載,被“原創”,寫的很好,也找不到真實的原創了)

               4)Wikipedia(維基百科)

               5)百度百科

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章