gpt4 book ai didi

javascript - 使用 en-US 区域设置获取时区名称

转载 作者:行者123 更新时间:2023-12-02 23:43:38 35 4
gpt4 key购买 nike

在使用 Intl.DateTimeFormat 时,我注意到在使用没有指定时区的语言环境时,不会设置时区短名称,例如 en-US 语言环境不包含 澳大利亚/悉尼时区信息。

有没有办法在保留 en-US 语言环境的同时显示 AEST?否则,我们将不得不将 IANA 时区映射到语言环境,这似乎有些过分了。

var date = new Date();
var options = {
hour: 'numeric', minute: 'numeric', second: 'numeric',
timeZone: 'Australia/Sydney',
timeZoneName: 'short'
};

// displays 12:14:27 am AEST
console.log(new Intl.DateTimeFormat('en-AU', options).format(date));

// 12:14:27 AM GMT+10
console.log(new Intl.DateTimeFormat('en-US', options).format(date));

最佳答案

据我所知,如果您不编写自己的有潜在风险的代码来处理您正在寻找的内容,那么您就不走运了。

Intl(以及大多数处理 l10n 和 i18n 的 JS 框架)通常搭载 CLDR。 CLDR 定义了此类事情的规则。在这种情况下,对于 en-US,没有名称的“特定短”版本,因此它会回退到本地化的 GMT 版本。

我建议你不要管它并接受它。任何类型的针对每个语言环境的黑客行为都不是一个好主意,因为您可能必须对多个语言环境执行此操作,然后在 Intl 更新时处理这些更改,因为 CLDR 不断被评估。

关于javascript - 使用 en-US 区域设置获取时区名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55955428/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com