自动夏令时时间行为(隔离系统)

时间:2011-09-07 19:04:37

标签: dst

第一次在SO上,我有一个问题,我希望得到你们的观点:

我在孤立的机器上工作(Linux操作系统,没有网络连接),我正在运行的问题之一是当用户启用我自己设置的自动DST设置时会发生什么。

由于并非所有区域都遵守DST,因此设置需要“开/关”类型的设置。此外,由于开始和停止日期似乎随政治家的突发奇想而变化,因此可以配置开始月/日/(第1,第2,第3,第4)以及停止月/日/(第1,第2,第3, 4)。是的,我遗漏了'第五',但我不认为这是一个开始/停止的条件。所以现在开始和停止期间可以灵活地定义为“行军的第一个星期日”。

现在问题的关键:当DST启用/禁用时应该发生什么?我想我会期望它会自动更改当前时间,如果日期&月份属于夏令时期间。与此同时,我有一些用户说当下面的工作流程发生时有点奇怪:设置时间为上午11:00,设置日期,启用夏令时,时间跳转到中午12:00。在启用/禁用时更改时间并等到下一个DST日期更正它会更有意义吗?

期待听到一些意见:) TIA

1 个答案:

答案 0 :(得分:0)

我不知道这里有最好的选择。我认为这归结为用户偏好。我个人可能会在更改选项时应用调整,但也会尝试在用户明显的时间内进行调整(可能)跳转,这样如果不是他们所期望的,他们就会马上知道他们需要调整时钟。

根据您可能需要使用的区域设置,您还应该知道并非所有地方都使用“三月的第一个星期日”样式来确定何时切换到/从DST。有些地方每年都会使用任意日期,其他地方可能会使用当月的特定日期。发生变化的时间也各不相同,有些地方根据其转换时间和时间而变化。 UTC上的日期,而其他日期则基于当地时间。您可能需要考虑如何确定转换日期的几种变体,除非您只处理一组有限的位置,这些位置在执行此操作方面更为一致。

即使只是在加拿大,有些地方会在午夜改变,而且有些地方会在凌晨2:00发生变化,有些地方根本不会改变。