我试图了解如何将IANA时区映射到Windows时区。我在这里确实看到了关于TimeZoneConverter的各种帖子,于是我开始使用它。然而,有一个问题我找不到答案:
由于到IANA时区的窗口是一对多的,如果我们从IANA转换为Windows,是否有可能实际偏移量和DST标志可能是错误的。例如,是否存在这样的情况: Windows时区覆盖2小时,而IANA有两个不同的时区(其中两个时区)。这样,如果我们在第二个小时内将IANA转换成Windows时区,那么实际的偏移量将是不同的/更改。
不太重要的是,我们能够从IANA ->窗口映射,然后返回到IANA获得相同的时区名称。非常重要的是,当我们进行重新映射时,实际的偏移量和DST标志不会改变。
谢谢
发布于 2022-04-14 15:13:33
非常重要的是,当我们进行重新映射时,实际的偏移量和DST标志不会改变。
这实际上要求Windows数据库和IANA数据库始终保持完全同步。虽然我能理解这种渴望,但这是一种不切实际的期望。除了其他任何东西,随着政府对其规则的改变,这两个数据库都会随着时间的推移而变化。除非您确保在完全相同的时间(在您使用的所有机器上)更改两个版本!总是会有不一致的可能。这除了在稳定状态下的实际数据是不同的--这种情况也会发生。
如果您查看Windows区域名称(例如此副本在Noda Time repo中)之间的ICU映射,就会发现它不是1:1的映射。一个单一的Windows时区ID可以映射到几个不同的IANA ID,其中一个(域001)被认为是主要映射。
我预计,在大多数情况下,你会看到相同的结果在两者之间-但它肯定不是保证在每个时区的每一刻。
https://stackoverflow.com/questions/71873777
复制相似问题