使用date(1970年1月1日)作为时间操纵的默认标准有什么原因吗?我已经在Java和Python中看到了这个标准。我知道这两种语言。还有其他遵循相同标准的流行语言吗?
请描述。
使用date(1970年1月1日)作为时间操纵的默认标准有什么原因吗?我已经在Java和Python中看到了这个标准。我知道这两种语言。还有其他遵循相同标准的流行语言吗?
请描述。
Answers:
使用日期(1970年1月1日)作为默认标准
该问题有两个错误的假设:
从1970年UTC开始并不总是跟踪计算时间。虽然那个时代参考很流行,但几十年来的各种计算环境至少使用了近二十个时代。有些来自其他世纪。范围从0年(零)到2001年。
这里有一些。
公元前1月1日,1月0日
公元1月1日,
1582年10月15日
1601年1月1日
1840年12月31日
1858年11月17日
1899年12月30日
1899年12月31日
1900年1月1日
1904年1月1日
1967年12月31日
1980年1月1日
1980年1月6日
2000年1月1日
2001年1月1日
1970年初开始流行,可能是因为它被Unix使用。但这绝不是主导。例如:
January 0, 1900
(1899年12月31日)。1 January 2001, GMT
January 6, 1980
而欧洲替代伽利略用途22 August 1999
。假设count-since-epoch正在使用Unix纪元,将给漏洞带来很大的漏洞。对于人类来说,这样的计数是不可能立即解密的,因此在调试和记录日志时,不容易标记出错误或问题。另一个问题是下面解释的粒度不明确。
我强烈建议您将日期时间值序列化为明确的ISO 8601字符串以进行数据交换,而不是将整数count-since-epoch进行序列化:YYYY-MM-DDTHH:MM:SS.SSSZ
例如2014-10-14T16:32:41.018Z
。
自计时以来时间跟踪的另一个问题是时间单位,通常至少使用四个级别的分辨率。
使用date(1970年1月1日)作为时间操纵的标准背后有什么原因吗?
没关系。
Python的time
模块是 C库。问肯·汤普森(Ken Thompson)为什么他选择那个日期作为一个时代的日期。也许是某人的生日。
Excel使用两个不同的时期。为什么不同版本的excel使用不同的日期?
除了真正的程序员之外,没有其他人会知道为什么做出这些决定。
和...
不要紧,为什么选择的日期。只是。
天文学家使用他们自己的时代日期:http : //en.wikipedia.org/wiki/Epoch_(天文学)
为什么?必须选择一个日期来计算数学。任何随机的日期都可以。
过去的日期通常会避免使用负数。
一些更聪明的软件包使用了多功的公历1年。为什么是1年?
在诸如Calendrical Calculations之类的书中给出了一个原因:从数学上讲它稍微简单一些。
但是如果您考虑一下,1/1/1和1/1/1970之间的差异只是1969,这是一个微不足道的数学偏移量。
1970年1月1日上午00:00:00是POSIX时间的零点。