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

为什么是

1970年1月1日00:00:00

考虑了时代?


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

之后,系统时间更改为每秒增加一次,这将可以用32位无符号整数表示的时间跨度增加到136年左右。 因为挤出柜台的每一秒都不再那么重要,所以这个时代向下取整到最接近的十年,因此成为1970-1-1。 人们必须假设这被认为比1971-1-1有点整洁。

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


历史。

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


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

但它并没有说明为什么最终选择了1970年1月1日。

来自维基百科页面的着名摘录:

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

由于范围有限,在速度变为1Hz之前,历元被重新定义不止一次 ,并且历元设置为其现值。

后来出现的一些问题,包括当前定义的复杂性,都是由Unix时间逐渐由使用而定义的,而不是完全定义为开始。

链接地址: http://www.djcxy.com/p/18481.html

上一篇: Why is 1/1/1970 the "epoch time"?

下一篇: How to subtract a day from a date?