正如我们所知,当我们的时钟向后拨1小时(就像一些国家的29OCT在2:00 )结束DST周期时,1:00到2:00之间的每个时间戳都会“出现”两次。
使用未来事件的应用程序应该如何处理此问题?
例如,用户创建了一个未来的事件,并指定它将在1:35发生在29OCT。让我们假设标准本地时间是UTC+3,DST是UTC+4
应用程序应如何将此时间转换为UTC?这个时间应该被认为是第一个实例(在DST结束之前,这使得它是21:35 UTC)还是第二个实例(在DST结束之后,即22:35 UTC)?
发布于 2014-11-19 18:18:50
只有你才能决定。它很大程度上是基于上下文的。
在许多情况下,正确的做法是选择两个事件中的第一个-这将是夏令时。在您的示例中,它将在UTC+4中以1:35运行。
您还需要考虑向前跳跃转换。落入间隙中的重复任务通常应被替换为等于DST偏差的量(通常为1小时)。例如,如果时钟从1:59:59.999跳到3:00,则计划在2:30运行的任务将在当天3:30运行。
同样,只有您才能决定什么是适合您的应用程序的正确行为。某些应用程序可能需要在标准时间运行fall事件,或者同时在这两个时间运行。在春天,他们可能想在下一个瞬间跑过差距(在上面的例子中是3:00,而不是3:30) -或者他们可能根本不想跑。
另请参阅:
https://stackoverflow.com/questions/27021900
复制相似问题