You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在浏览器端JavaScript中获取时区缩写?

问题描述

我可以通过Intl.DateTimeFormat().resolvedOptions().timeZone获取时区名称,比如我的浏览器返回结果为America/Los_Angeles。请问是否有方法可以获取对应的时区缩写,比如当前的PDT?

解决方案

可以通过Intl.DateTimeFormat的内置配置直接获取时区缩写,无需引入第三方库:

1. 获取当前用户时区的缩写

直接调用以下代码即可:

Intl.DateTimeFormat('en-US', { timeZoneName: 'short' })
  .formatToParts()
  .find(part => part.type === 'timeZoneName')
  .value

如果你的当前时区处于洛杉矶夏令时阶段,返回结果就是PDT。

2. 指定时区获取对应缩写

如果需要获取固定时区(比如指定America/Los_Angeles,忽略用户本地时区)的缩写,补充timeZone配置即可:

Intl.DateTimeFormat('en-US', { 
  timeZone: 'America/Los_Angeles',
  timeZoneName: 'short' 
})
  .formatToParts()
  .find(part => part.type === 'timeZoneName')
  .value

注意事项

  • 时区缩写和时间节点强关联,比如洛杉矶时区冬季返回PST、夏季返回PDT,上述代码默认返回当前时间对应的时区缩写。
  • 如果你需要获取某个特定时间点的时区缩写,给formatToParts传入对应日期对象即可,示例:
// 获取2024年1月1日洛杉矶对应的时区缩写
const targetDate = new Date('2024-01-01T00:00:00');
Intl.DateTimeFormat('en-US', { 
  timeZone: 'America/Los_Angeles',
  timeZoneName: 'short' 
})
  .formatToParts(targetDate)
  .find(part => part.type === 'timeZoneName')
  .value
// 返回结果为PST
  • 如果你需要其他语言的时区名称展示,修改第一个参数的locale值即可,比如传入zh-CN会返回中文格式的时区名称。

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 21:45:04