为什么1/1/1970是“纪元时间”?

为什么是

1970年1月1日00:00:00

考虑了时代

Unix的早期版本以1/60秒为间隔测量系统时间。 这意味着32位无符号整数只能表示less于829天的时间跨度。 出于这个原因,数字0 (称为时代 )代表的时间必须在最近的过去。 因为这是在二十世纪七十年代初,这个时代已经设定到1971-1-1。

之后,系统时间被改变为每秒递增,这增加了可以由32位无符号整数表示的时间跨度至约136年。 因为从柜台中挤出每一秒已经不再那么重要了,这个时代已经下降到最接近的十年了,因此变成了1970-1-1。 人们必须假定这被认为比1971-1-1有点整洁。

请注意,使用1970-1-1作为其时期的32位有符号整数可以表示date高达2038-1-19 ,在这个date它将包装到1901-12-13。

历史 。

Unix时间最早的版本有一个32位整数,以60赫兹的速度递增,这是早期Unix系统硬件上的系统时钟速率。 60Hz的值仍然出现在一些软件接口中。 时代也不同于现在的价值。 1971年11月3日的第一版 Unix程序员手册将Unix时间定义为“1971年1月1日00:00:00以六十分之一秒为单位的时间”。

http://en.wikipedia.org/wiki/Unix_time#History解释了Unix时间的起源和选定的时代。; unix时间的定义和时代date经历了一些变化,然后才稳定下来。

但是并没有说到底为什么到了1970年1月1日才被选中。

维基百科页面的摘录摘录如下:

1971年11月3日的第一版 Unix程序员手册将Unix时间定义为“ 1971年 1月1 00:00:00以六十分之一秒为单位的时间”。

由于有限的范围,历元不止一次地重新定义 ,在速率改变为1Hz之前,历元被设定为现值。

以后的一些问题,包括当前定义的复杂性,都是由于Unix时代已经逐渐被使用而定义的,而不是完全定义为开始。

简短的回答:为什么不呢?

较长的答案:只要使用它的每个人都同意它的价值,时间本身并不重要。 由于1/1/70已经被使用了很长时间,使用它会使尽可能多的人尽可能地理解代码。

select一个任意的时代是不一样的。