我需要将IANA / Olson时区ID映射为缩写,例如EST,PST等。

我知道这不是一对一映射,例如,对于EST,有很多IANA时区。

我可以为此使用某种数据库/映射吗?

PS:最好使用JavaScript解决方案,但不胜感激任何能帮助我建立此映射的信息( IANA时区ID->缩写)。

最佳答案

IANA TZDB源数据确实已经有缩写,但是必须针对相关日期进行计算。您可以在Zone.FORMATRule.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/

10-09 01:44