我希望创建一个函数,将时区别名转换为所述时区的规范名称。
维基百科上的时区状态
例如,如果我有“Africa/Accra”,我希望能够查找“Africa/Abidjan”是该时区的规范名称。
function getCanonicalName(name) {
// TODO
}
getCanonicalName('Africa/Accra'); // => 'Africa/Abidjan'
我自己调查过的事情
我尝试使用 moment-timezone
和 luxon
来解析时区名称,但这些库似乎没有一种方法可以反向工程出规范时区。
根据 moment-timezone
文档,您可以从“打包”数据表示中获取时区的规范名称,但是 查看他们源代码中pack
的实现,它似乎只是通过 source.name
传递。
luxon
有一个名为normalizeZone
的助手,但它似乎只是从各种输入类型返回Zone
实例。然而,它并没有规范化时区名称。在luxon Zone
上有一个isUniversal
标志,但这个标志似乎与夏令时有关,而不是时区状态。
guess()
API了吗? 文档链接 - Vishnuguess()
API足以获取当前用户的时区,但我们的服务还需要展示管理员存储在用户记录上的用户时区信息。我们允许他们存储时区别名,但我们希望将它们规范化为规范时区,因此我认为guess
不足够。 - Souperman