gpt4 book ai didi

c# - 边际时间的夏令时更改时间表触发器

转载 作者:太空狗 更新时间:2023-10-30 01:19:21 25 4
gpt4 key购买 nike

我正在编写一个日程安排应用程序,我很好奇如何处理有关夏令时 (DST) 更改的以下边际情况:

比如说,我们在 DST 所在的时区:

  • 开始于 2014-Mar-9 2:00:00 AM(时钟向前调整)
  • 结束于 2014 年 11 月 2 日 2:00:00 AM(时钟向后调整)

假设,最终用户将我的应用安排在 2014-Nov-2, 2:00:00 AM

假设现在的本地日期/时间是 2014-Nov-2, 1:59:99 AM

我的应用应该在什么时候触发时间表——是在 1 秒内,还是在 1 小时 1 秒内?

是否有一个标准来定义如何处理这种情况?

最佳答案

根据 wikipedia夏令时的规则是:

...in spring the clock jumps forward from the last moment of 01:59 standard time to 03:00 DST and that day has 23 hours, whereas in autumn the clock jumps backward from the last moment of 01:59 DST to 01:00 standard time, repeating that hour, and that day has 25 hours.[37] A digital display of local time does not read 02:00 exactly at the shift to summertime, but instead jumps from 01:59:59.9 forward to 03:00:00.0.

因此,虽然世界各地的时间和日期不同,但规则相似(忽略使用半小时轮类的澳大利亚豪勋爵岛)。不会触及向后或向前跳转的小时,而是跳转到的小时。

所以在我看来你应该在一小时零一秒内触发计划。

如果您要在一秒钟内触发它,而用户想在 3 点停止计划,它会运行两个小时,而不是看起来不正确的一个小时(2-3 = 1 小时)。

关于c# - 边际时间的夏令时更改时间表触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23237585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com