我需要将IANA / Olson时区ID映射为缩写,例如EST,PST等。
我知道这不是一对一映射,例如,对于EST,有很多IANA时区。
我可以为此使用某种数据库/映射吗?
PS:最好使用JavaScript解决方案,但不胜感激任何能帮助我建立此映射的信息( IANA时区ID->缩写)。
最佳答案
IANA TZDB源数据确实已经有缩写,但是必须针对相关日期进行计算。您可以在Zone.FORMAT
和Rule.LETTER/S
列的示例数据here中看到它。
由于时区缩写如CST
can be ambiguous,因此仅建议您使用它们显示给人类。切勿尝试将它们用于其他方向,因为大多数实现只会识别少数几种,而且它们往往仅对美国有效。
由于您要求提供可以为您完成此操作的代码,因此请查看my answer中的代码的下半部分,以了解如何使用.Net中的Noda Time进行此操作。 (上半部分是关于首先从Windows区域转换到IANA区域的,您不需要。)
您可以查看the several TZDB libraries for JavaScript之一,但是我不确定是否有任何直接公开缩写数据的地方。此外,这么小的东西有点重。
关于timezone - 将IANA/Olson时区数据库映射到缩写(例如EST,PST等),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18250699/