有没有办法在浏览器Javascript中获取时区缩写?

有没有办法在浏览器Javascript中获取时区缩写?,javascript,time,browser,timezone,Javascript,Time,Browser,Timezone,我可以通过Intl.DateTimeFormat().resolvedOptions().timeZone获取tz名称,例如在我的浏览器中,America/Los_Angeles。有没有办法取而代之的是时区的缩写(在提出这个问题时,PDT)?是的,您可以将时区名称格式化为简写形式,然后将其从格式化部分中取出,如下所示: Intl.DateTimeFormat('en', {timeZoneName: 'short'}).formatToParts().find(p => p.type ==

我可以通过
Intl.DateTimeFormat().resolvedOptions().timeZone
获取tz名称,例如在我的浏览器中,
America/Los_Angeles
。有没有办法取而代之的是时区的缩写(在提出这个问题时,PDT)?

是的,您可以将时区名称格式化为简写形式,然后将其从格式化部分中取出,如下所示:

Intl.DateTimeFormat('en', {timeZoneName: 'short'}).formatToParts().find(p => p.type === 'timeZoneName').value
但要记住几件事:

  • 语言很重要<代码>'en'这是英语。您可以通过
    undefined
    来使用最终用户的语言,但并非所有语言都定义了时区缩写

  • 具体日期和时间很重要。
    formatParts
    接受一个
    Date
    对象,但如果不存在该对象(或
    未定义的对象),它将使用当前日期和时间

  • 并非所有时区缩写都有明确的定义

  • 并非所有时区缩写都使用一致

  • 并非所有时区缩写都是唯一的

  • 并非所有时区都有缩写

因此,我强烈建议尽可能避免使用时区缩写