DST边界或跨时区的持续时间

时间:2017-11-21 15:58:09

标签: datetime timezone dst duration iso8601

我想知道ISO-8601或其他任何有关时间的流行标准是否会解决间隔跨越DST边界的持续时间问题?

例如,2017-03-01T12:00:00-05:002017-03-02T12:00:00-05:00之间的持续时间显然为1 day

但是2017-03-11T12:00:00-05:00(DST关闭)和2017-03-12T12:00:00-04:00(DST开启)之间的持续时间如何呢?一方面,它是中午,直到第二天中午 - 这似乎是1 day。另一方面,实际经过的时间只有23 hours

此外,无论语义是什么,它们是否也适用于不同的地理时区(纽约市有一天中午和伦敦第二天中午)?

1 个答案:

答案 0 :(得分:2)

ISO 8601:2004(E)的相关部分

  

<强> 2.2.6
  日历日
  时间间隔从午夜开始到下一个午夜结束,后者也是下一个日历日的开始时刻

     

注1:日历日通常也称为日

     

注2:日历日的持续时间为24小时;除非修改为:

     
      
  • 根据国际地球自转服务(IERS)的决定插入或删除闰秒,或
  •   
  • 插入或删除其他时间间隔,地方当局可以规定改变当地时间的时间范围。
  •   
     

<强> 2.2.7
  的
  <持续时间>日历日的持续时间

     

注意术语&#34;日&#34;也适用于在某个日历日的特定时间开始并在下一个日历日的同一时间结束的任何时间间隔的持续时间

     

...

     

<强> 4.2.2.1

     

......没有做出任何规定来防止由于当地时间的时间间隔(例如夏令时)的不连续而导致的表达方式含糊不清

总之,人们应该非常谨慎地使用术语&#34; day&#34;。虽然是常见的标准日&#34;持续时间为24小时,闰秒和本地时区转换都会影响其持续时间。

根据经验,我倾向于默认使用日历单位来考虑。也就是说,与一样,它是日历系统的一部分,而不是计时系统。想想这三个部分齐声协作,在下面制作一个正方形:

calendar

相反,时间的单位都基于SI second完全

  

9,192,631,770个辐射周期的持续时间对应于铯133原子基态的两个超精细水平之间的过渡

我们的其他时间单位都来自那里。 60秒钟。 60分钟就能赚一个小时。

虽然我们希望根据确切的时间量来定义天数,但由于时区,夏令时和闰秒,我们无法始终协调两者。