为了账号安全,请及时绑定邮箱和手机立即绑定

使用美国语言环境获取时区名称

使用美国语言环境获取时区名称

慕沐林林 2021-05-14 18:10:51
在使用时Intl.DateTimeFormat,我注意到在使用不具有指定时区的语言环境时,未设置时区短名称,例如en-US语言环境不包含Australia/Sydney时区信息。是否有一种AEST在保留en-US语言环境的同时进行显示的方法?否则,我们将不得不将IANA时区映射到语言环境,这似乎有些过分。var date = new Date();var options = {  hour: 'numeric', minute: 'numeric', second: 'numeric',   timeZone: 'Australia/Sydney',  timeZoneName: 'short'};// displays 12:14:27 am AESTconsole.log(new Intl.DateTimeFormat('en-AU', options).format(date));// 12:14:27 AM GMT+10console.log(new Intl.DateTimeFormat('en-US', options).format(date));
查看完整描述

1 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

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

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

我建议您不理会它,并与其一起生活。任何一种基于区域设置的黑客都不是一个好主意,因为您可能必须对多个区域设置执行此操作,然后在不断评估CLDR时更新Intl时应对这些更改。


查看完整回答
反对 回复 2021-05-20
  • 1 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号