【发布时间】:2021-11-28 01:47:25
【问题描述】:
我想创建一个函数,将时区别名转换为所述时区的规范名称。
Status of timezones from Wikipedia
例如,如果我有 Africa/Accra,我希望能够查找 Africa/Abidjan 是时区的规范名称。
function getCanonicalName(name) {
// TODO
}
getCanonicalName('Africa/Accra'); // => 'Africa/Abidjan'
我自己调查过的事情
我曾尝试使用moment-timezone 和luxon 来解析区域名称,但似乎没有办法将规范时区作为这些库的一部分进行逆向工程。
根据moment-timezone docs,您可以从“打包”数据表示中获取时区的规范名称,但在其源代码中looking at the implementation of pack,似乎只是通过source.name。
luxon 有一个 normalizeZone 帮助器,但这似乎只是从各种输入类型返回一个 Zone 实例。但是,它不会规范化区域名称。 luxon Zones 上有一个isUniversal 标志,但是这个标志似乎与夏令时有关,而不是时区的状态。
【问题讨论】:
-
现在有
guess()API吗? Link to Docs -
谢谢,
guess()API 足以获取当前用户的时区,但我们的服务还需要向管理员显示存储在用户记录中的用户时区信息。我们允许他们存储时区别名,但我们希望将它们标准化为规范时区,所以我认为guess是不够的。
标签: javascript timezone moment-timezone luxon