回答
早期版本。這意味着32位無符號整數只能表示少於829天的時間跨度。出於這個原因,由0
(稱爲時期)代表的時間必須在最近的過去確定。因爲這是在二十世紀七十年代初,這個時代被設定爲1971-1-1。
後來,系統時間更改爲每秒增加一次,這將可以用32位無符號整數表示的時間跨度增加到136年左右。因爲擠出櫃檯的每一秒都不再那麼重要,所以這個時代向下取整到最接近的十年,因此成爲1970-1-1。人們必須假設這被認爲比1971-1-1有點整潔。
注意,32位使用1970-1-1作爲其劃時代可以代表日期最多2038-1-19,從該日起,將環繞到1901年12月13日簽署整數。
簡答:爲什麼不?
較長的答案是:時間本身並不重要,只要大家誰使用它同意其價值。由於1/1/70已經被使用了很長時間,使用它將盡可能地讓代碼儘可能容易理解。
有在選擇任意的時期正好是不同的無大功。
的Unix時間最早的版本有 一個32位整數遞增以 速率60Hz的,這是的 速率上的 早期Unix系統硬件的系統時鐘。作爲結果,值60 Hz仍然出現在某些軟件 接口中。新紀元也 與當前值不同。 的 第一版的Unix程序員手冊 日1971年11月3日的 Unix時間定義爲「時間,因爲00:00:00, 1971年1月1日,在 第二六十分測量」。
http://en.wikipedia.org/wiki/Unix_time#History解釋了一點關於Unix時間的起源和選擇的時代。 unix時間和時代日期的定義經歷了幾次變化,然後才穩定下來。
但它並沒有說究竟爲什麼1/1/1970到底選擇。
從維基百科頁面值得注意的摘錄:
的第一版的Unix程序員手冊日期爲1971年11月3日的Unix時間定義爲「00:00:00以來的時間,1月1日1971年,在六十分之一秒測量「。
由於有限的範圍,在速率改變爲1Hz並且時期被設置爲其現值之前,時期重新定義了多次。
以後幾個問題,包括在本定義的複雜性,從已經通過使用逐漸定義Unix時間,而不是完全定義的開始與導致。在1/60秒的時間間隔的測量的UNIX系統時間
- 1. 爲什麼tzinfo會在python中創建一個紀元時間?
- 2. Linux紀元時間
- 3. 將紀元時間轉換爲日期
- 4. 通過settimeofday()紀元時間?
- 5. 轉換時間紀元時間格式
- 6. 將sqlite3時間戳轉換爲python中的紀元時間
- 7. 如何使用Perl將紀元時間轉換爲UTC時間?
- 8. Python 2.7將標準unix時間戳轉換爲紀元時間
- 9. 將QString Unix紀元時間轉換爲QString標準時間
- 10. 如何將以下時間格式轉換爲紀元時間
- 11. 轉換Unix(大紀元)時間爲當地時間
- 12. 如何將日期時間轉換爲時間戳紀元
- 13. 大紀元時間和時區
- 14. 紀元時間距離UTC一小時,應該是UTC + 1
- 15. 大紀元時間是給12的區別:小時
- 16. Mysql:從紀元時間刪除秒
- 17. mysql時間戳不在紀元中
- 18. 擷取Unix紀元時間在java中
- 19. 在紀元時間過濾tshark錯誤
- 20. 字符紀元時間日期格式
- 21. SQLServer紀元時間空日期
- 22. 大紀元/ UNIX時間轉換JSP
- 23. 的Python:大紀元時間問題
- 24. 日期時間大紀元轉換
- 25. 的Javascript Unix紀元時間奇詭
- 26. Unix紀元時間:添加日期
- 27. 大紀元時間的位數
- 28. Parse JSON日期紀元時間
- 29. DataTables:按大紀元時間排序
- 30. 在iPad中計算紀元時間
不知道爲什麼有人認爲這是主觀的。 '大紀元'時間是一個標準的時間戳方案。 – ConcernedOfTunbridgeWells 2009-07-07 08:40:57
n.b.這個問題是由@phoenix發佈的,我剛剛糾正了語法。 – 2009-07-07 09:24:21
今天是380,000小時前 – mplungjan 2013-05-08 12:06:03