为什么
1970年1月1日 00:00:00
被认为是纪元时间(epoch time)?
为什么
1970年1月1日 00:00:00
被认为是纪元时间(epoch time)?
历史.
最早的 Unix 时间版本采用一个32位整数,以60 Hz 的速率递增,这也是早期 Unix 系统硬件的系统时钟速率。某些软件界面中仍然出现了值为 60 Hz。同时,它的纪元时间也与当前值不同。1971 年 11 月 3 日发布的 Unix 程序员手册第一版将 Unix 时间定义为“自 1971 年 1 月 1 日 00:00:00 起,以每秒六十分之一的秒为单位计算的时间”。
时代参考日期是时间线上的一个点,我们从这个点开始计算时间。这个点之前的时刻用负数计算,之后的时刻用正数计算。
为什么1970年1月1日00:00:00被认为是时代时间?
不是 the 时代,而是 an 时代。有许多时代在使用。
选择这个时代是任意的。
主要的计算机系统和库使用至少几十个不同的时代之一。其中最流行的时代之一通常被称为Unix时间,使用了你提到的1970年UTC时刻。
虽然Unix时间很受欢迎,但它的1970年可能不是最常见的。在最常见的竞争中,无数Microsoft Excel和Lotus 1-2-3电子表格使用1900年1月0日,或者超过10亿台iOS / macOS设备中的Apple Cocoa框架使用了2001年1月1日。或者可能是GPS设备所使用的1980年1月6日?
2019-01-23
2019-01-23T12:34:56.123456Z
2019-01-23T18:04:56.123456+05:30
2019-234
http://en.wikipedia.org/wiki/Unix_time#History 解释了Unix时间和选定纪元的起源。 Unix时间的定义和时代日期在稳定在现在之前经历了几次变化。
但它没有说明为什么最终选择了1970年1月1日。
维基百科页面中的一些重要摘录:
1971年11月3日出版的《第一版Unix程序员手册》将Unix时间定义为“从1971年1月1日00:00:00起,以每秒六十分之一秒的速度测量的时间”。
由于范围有限,该时代已经多次重新定义,直到速率更改为1 Hz并将时代设置为其当前值。
Unix时间逐渐通过使用定义而不是完全定义的结果导致后来的几个问题,包括目前定义的复杂性。
简短回答:为什么不呢?
更长的回答:时间本身并不重要,只要使用它的人都同意其价值。由于1970年1月1日已经被使用了这么长时间,使用它将使您的代码尽可能地易于理解,适用于尽可能多的人。
选择一个任意的纪元只是为了与众不同,并没有太大的优点。