Datetime 如何计算大纪元日?

Datetime 如何计算大纪元日?,datetime,epoch,Datetime,Epoch,计算纪元日是否像计算纪元秒数除以86400那么简单?或者需要做一些特殊的计算来考虑夏令时、闰年或其他因素吗 更新:我所说的“纪元日”是指自纪元起的天数。POSIX定义,您可以通过将时间戳除以86400来推断自纪元起的天数(1970-01-01 00:00:00Z)。这故意和有意识地忽略了闰秒 见定义: 从新纪元开始4.15秒 一个值,近似自历元以来经过的秒数。协调世界时名称(以秒(tm_秒)、分钟(tm_分钟)、小时(tm_小时)、一年1月1日起的天数(tm_yday)和日历年减去1900(tm

计算纪元日是否像计算纪元秒数除以86400那么简单?或者需要做一些特殊的计算来考虑夏令时、闰年或其他因素吗


更新:我所说的“纪元日”是指自纪元起的天数。

POSIX定义,您可以通过将时间戳除以86400来推断自纪元起的天数(1970-01-01 00:00:00Z)。这故意和有意识地忽略了闰秒

见定义:

从新纪元开始4.15秒 一个值,近似自历元以来经过的秒数。协调世界时名称(以秒(
tm_秒
)、分钟(
tm_分钟
)、小时(
tm_小时
)、一年1月1日起的天数(
tm_yday
)和日历年减去1900(
tm_年
)表示的时间与以秒表示的时间相关,根据下面的表达式

如果年份为
=1970
,且该值为非负,则该值根据C语言表达式与协调的世界时名称相关,其中
tm_sec
tm_min
tm_hour
tm_yday
tm_year
均为整数类型:

tm_sec + tm_min*60 + tm_hour*3600 + tm_yday*86400 +
     (tm_year-70)*31536000 + ((tm_year-69)/4)*86400 -
     ((tm_year-1)/100)*86400 + ((tm_year+299)/400)*86400
未指定一天的实际时间与自历元以来秒的当前值之间的关系

实现定义了自历元以来秒值的任何更改如何与当前实际时间的期望关系对齐。如从纪元开始以秒表示,每一天应以86400秒计算

注: 表达式的最后三个术语为闰年之后的每一年加上一天,从新纪元以来的第一个闰年开始。第一学期从1973年开始每4年加一天,第二学期从2001年开始每100年减去一天,第三学期从2001年开始每400年加一天。公式中的除法为整数除法;也就是说,余数被丢弃,只留下整数商

什么是大纪元日?(纪元为1970年1月1日UTC[unix]0h)