为什么编程语言以及数据库要从1970年1月1日开始计算时
生活随笔
收集整理的這篇文章主要介紹了
为什么编程语言以及数据库要从1970年1月1日开始计算时
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最初計算機操作系統是32位,而時間也是用32位表示。
System.out.println(Integer.MAX_VALUE);
2147483647
Integer在JAVA內用32位表示,因此32位能表示的最大值是2147483647。另外1年365天的總秒數是31536000,
2147483647/31536000?=?68.1
也就是說32位能表示的最長時間是68年,而實際上到2038年01月19日03時14分07
秒,便會到達最大時間,過了這個時間點,所有32位操作系統時間便會變為
10000000?00000000?00000000?00000000
也就是1901年12月13日20時45分52秒,這樣便會出現時間回歸的現象,很多軟件便會運行異常了。
到這里,我想問題的答案已經出來了:
因為用32位來表示時間的最大間隔是68年,而最早出現的UNIX操作系統考慮到計算
機產生的年代和應用的時限綜合取了1970年1月1日作為UNIX?TIME的紀元時間(開始
時間),而java自然也遵循了這一約束。
至于時間回歸的現象相信隨著64為操作系統的產生逐漸得到解決,因為用64位操作
系統可以表示到292,277,026,596年12月4日15時30分08秒,相信我們的N代子孫,哪
怕地球毀滅那天都不用愁不夠用了,因為這個時間已經是千億年以后了。
總結
以上是生活随笔為你收集整理的为什么编程语言以及数据库要从1970年1月1日开始计算时的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PullToRefresh
- 下一篇: 《Oracle comment on注释