为什么要从1970年1月1日开始计算日期?

2020/12/07 11:22 · python ·  · 0评论

使用date(1970年1月1日)作为时间操纵的默认标准有什么原因吗?我已经在Java和Python中看到了这个标准。我知道这两种语言。还有其他遵循相同标准的流行语言吗?

请描述。

这是Unix时间的标准

Unix时间(即POSIX时间)是一种用于描述时间点的系统,该时间点定义为自1970年1月1日午夜多点协调世界时(UTC)起经过的秒数,不包括leap秒。

使用日期(1970年1月1日)作为默认标准

该问题有两个错误的假设:

  • 自1970年以来,计算领域的所有时间跟踪工作都开始进行。
  • 这种跟踪是标准的。

两个打时代

从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日

Unix时代常见,但不占主导地位

1970年初开始流行,可能是因为它被Unix使用。但这绝不是主导。例如:

ISO 8601

假设count-since-epoch正在使用Unix纪元,将给漏洞带来很大的漏洞。对于人类而言,这样的计数是不可能立即解密的,因此在调试和记录日志时,不容易标记出错误或问题。另一个问题是下面解释的粒度不明确。

我强烈建议您将日期时间值序列化为明确的ISO 8601字符串,以进行数据交换,而不是将整数count-since-epoch进行序列化YYYY-MM-DDTHH:MM:SS.SSSZ例如2014-10-14T16:32:41.018Z

什么,自纪元

自计时以来时间跟踪的另一个问题是时间单位,通常至少使用四个级别的分辨率。

  • 秒数
    最初的Unix工具使用了整秒,如果存储为32位整数,那么我们达到了1970年以来的秒数极限,则导致2038年问题

  • 较早的Java库(包括捆绑的java.util.Date类和Joda-Time库)使用的毫秒数

  • 由数据库使用的微秒,例如Postgres
  • 纳秒,
    Java 8中的新java.time包使用。

该图显示了从纪元开始以秒,毫秒,微秒或纳秒为单位的不同软件计数。

为什么总是1970年1月1日,因为-1970年1月1日通常称为“时代日期”,是Unix计算机的开始时间,该时间戳记为“ 0”。自该日期以来的任何时间都是根据经过的秒数计算的。用简单的话来说...任何日期的时间戳记都将是该日期与“ 1970年1月1日”之间的秒数差异。时间戳记只是一个整数,该整数从“ 1970年1月1日午夜”的数字“ 0”开始并继续递增每隔一秒钟传递“ 1”,以将UNIX时间戳转换为可读日期PHP和其他开源语言提供了内置函数。

使用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时间的零点

问: “为什么要从1970年1月1日开始计算日期?”

A)它必须尽可能新,但要包含一些过去。很多人也有同样的感觉,很可能没有其他明显的原因。

他们知道,如果将其放置在离历史太远的地方,就会构成问题;如果将来,它会带来负面的结果。由于事件很可能会在将来发生,因此过去没有必要更深入。

注:
另一方面,玛雅人需要将事件放到过去,因为他们了解很多过去,因此他们进行了长期压延。
只是将所有常规现象放在压延机上。

时间戳并非日历,而是一个时代。而且我相信,玛雅人也使用相同的观点进行了长期压延。(这意味着他们非常了解自己与过去没有任何关系,只需要更大规模地了解过去)

是的,C(及其家人)。这也是Java采取的方法。

本文地址:http://python.askforanswer.com/weishenmeyaocong1970nian1yue1rikaishijisuanriqi.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:

评论已关闭!