6

我正在构建一个时区感知应用程序。我应该测试哪些常见(但不那么常见)的场景?

我能想到的唯一极端情况是夏令时,但我确信我错过了很多。

4

1 回答 1

0

在我的头顶

  • 时区是时间序列:我的意思是,如果您将某个瞬间的本地时间存储在某个地方,那么您将使用今天的时区信息。到明天,这些信息可能已经改变,存储的瞬间可能会被不同地解释。要解决此问题,请考虑将手头的时区信息与您要描述的事件或瞬间一起存储。

  • 日期和时间是观察:我的意思是你可以在本地时间编码一个瞬间,而不管那个瞬间有效的时区,并在观察时进行转换。1 月 1 日凌晨 2 点可能比今天的某个参考点提前 4 天 3 小时。但在 1 月 1 日凌晨 2 点,相同的参考点可能看起来只是 4 天 2 小时前。因此,在不同时间的参考点之间的经过时间之间进行转换时,您必须留意。特别是,如果您设置了一个计时器(以N秒为单位),您可能需要重新计算它是否仍不时匹配事件。

  • 时区是区域性的:我的意思是你不能只将具有相同时区偏移量的所有日期时间视为相等。尤其是北半球和南半球的 DST 观测地点在一年中可能会同时出现一段时间,而在一年中的其余时间它们完全不同步。

  • 本地时间指定的日期和时间不必存在或可以存在多次。您给出了 DST 示例,在 DST 向后切换时发生两次,一次在切换之前,一次在切换之后,因此您可能需要一个标志。同样,DST 切换向前跳过时间。然而,夏令时并不是唯一的例子。国际日期变更线附近的一些地区决定在它的左边或右边,结果要么缺了一整天,要么一整天重复了两次。

于 2012-12-11T14:29:44.460 回答