我正在构建一个时区感知应用。我应该测试哪些常见(而不是那么常见)的场景?
我能想到的唯一一个案例是DST,但我确信我错过了一堆。
答案 0 :(得分:0)
脱离我的头顶
时区是时间序列:我的意思是,如果你把某个瞬间的当地时间存储在某个地方然后你就会使用今天的时区信息。到明天,这些信息可能已经改变,存储的瞬间可能会有不同的解释。要解决此问题,请考虑将时区信息存储在您想要描述的事件或瞬间。
日期和时间是观察:我的意思是你可以在当地时间编码一个瞬间,而不管当时有效的时区,并在观察时进行转换。 1月1日凌晨2点可能比今天的某个参考点早4天3小时。但是在1月1日凌晨2点,相同的参考点可能只出现在4天2小时前。因此,在不同时间参考点之间的经过时间之间进行转换时,您必须留意。特别是,如果您设置了一个计时器(在N
秒内),您可能需要重新计算它是否仍然不时匹配该事件。
时区是区域性的:我的意思是你不能只用相同的时区偏移处理所有日期时间。特别是在北半球和南半球的DST观测地点可能会在一年中重合一段时间,而在一年中的其他时间它们完全不同步。
当地时间指定的日期和时间不需要存在或可以存在多次。您给出了DST示例,在DST切换时间之间向后发生两次,一次在切换之前,一次之后,因此您可能需要一个标志。同样,DST开关向前跳过次数。然而,夏令时不是唯一的例子。国际日期线附近的一些地区决定左侧或右侧,因此有一整天缺失或整整一天重复两次。