編程語言和數(shù)據(jù)庫里面經(jīng)常可以看到,定義的時間是從1970年1月1日開始,但不知道為啥,于是到網(wǎng)上找找答案。
比如java中:
Date date = new Date(0);
System.out.println(date);
打印出來的結(jié)果:
Thu Jan 01 08:00:00 CST 1970
也是1970年1月1日,實際上時分秒是8點0分0秒(北京時間+8的緣故)。
最初計算機操作系統(tǒng)是32位,而時間也是用32位表示。
System.out.println(Integer.MAX_VALUE);
2147483647
Integer在JAVA內(nèi)用32位表示,因此32位能表示的最大值是2147483647。另外1年365天的總秒數(shù)是31536000,
2147483647/31536000 = 68.1
因為用32位來表示時間的最大間隔是68年,而最早出現(xiàn)的UNIX操作系統(tǒng)考慮到計算
機產(chǎn)生的年代和應(yīng)用的時限綜合取了1970年1月1日作為UNIX TIME的紀元時間(開始
時間),而java自然也遵循了這一約束。
至于時間回歸的現(xiàn)象相信隨著64為操作系統(tǒng)的產(chǎn)生逐漸得到解決,因為用64位操作
系統(tǒng)可以表示到292,277,026,596年12月4日15時30分08秒,這個怎么說都夠用了,不夠的話變成128,256位?這個時候地球還存在嗎?哈哈。