編程語言和數據庫里面經常可以看到,定義的時間是從197011日開始,但不知道為啥,于是到網上找找答案。

比如java中:

Date date = new Date(0);
System.out.println(date);

打印出來的結果:

Thu Jan 01 08:00:00 CST 1970

也是197011日,實際上時分秒是800(北京時間+8的緣故)

最初計算機操作系統是32位,而時間也是用32位表示。

System.out.println(Integer.MAX_VALUE);
2147483647

IntegerJAVA內用32位表示,因此32位能表示的最大值是2147483647。另外1365天的總秒數是31536000,

2147483647/31536000 = 68.1

因為用32位來表示時間的最大間隔是68年,而最早出現的UNIX操作系統考慮到計算
機產生的年代和應用的時限綜合取了
197011日作為UNIX TIME的紀元時間(開始
時間
),而java自然也遵循了這一約束。

至于時間回歸的現象相信隨著64為操作系統的產生逐漸得到解決,因為用64位操作
系統可以表示到
292,277,026,596124153008秒,這個怎么說都夠用了,不夠的話變成128,256位?這個時候地球還存在嗎?哈哈。