无论采用哪种方式,它都将根据更改的内容以不同的方式失败。
- 如果您将时间戳记存储在相应的时区中
2013-12-29 12:34:56 America/New_York
,例如,如果Bronx突然以America/New_York_Bronx
不同的偏移量开始自己的时区,而您的事件恰好在Bronx中,则将失败。
确定发生这种情况的可能性以及失败的严重程度。
- 如果您将时间戳存储在UTC中,并且事件发生的时区正在重新定义其偏移量(例如,将DST日期偏移,或者完全偏移到另一个偏移量),则事件时间可能与该位置的实际挂钟时间不同。如果您
2013-12-29 12:34:56 UTC
在德国柏林的13:34:56 存储事件,并且柏林转移了夏令时,2013-12-29 12:34:56 UTC
则现在可能对应于柏林当地时间14:34:56,而该事件实际上仍在当地时间13:34发生。
确定发生这种情况的可能性以及失败的严重程度。
- 如果存储UTC时间戳并将其链接到实际位置,然后再链接到时区,则可以解决这两个问题。但是为此,您将必须存储精确的物理位置,而不仅仅是“纽约”,否则,您将只剩下第一种情况,还有一个中间步骤。如果您确实存储了准确的物理位置,并且拥有将该位置解析为时区的精确方法,并且使时区数据库保持最新状态,则可以处理几乎所有的更改方案。
确定这是多么实用,以及这种额外的精度对您来说有多少价值。



