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

如何在JavaScript中获取日期的时区缩写(如IST、EST)

JavaScript 日期时区全称转缩写方案

方案一:正则替换+时区映射表

JavaScript原生Date对象的toString()方法返回的字符串中,时区为全称格式。我们可以通过预定义的映射表结合正则替换来实现转换:

const d = new Date();
const originalDateStr = d.toString();

// 按需扩展常用时区的全称-缩写映射
const timeZoneMappings = {
  'India Standard Time': 'IST',
  'China Standard Time': 'CST',
  'Eastern Standard Time': 'EST',
  'Pacific Standard Time': 'PST'
};

// 匹配括号内的时区全称并替换
const formattedDate = originalDateStr.replace(/\(([^)]+)\)/, (_, fullName) => {
  return `(${timeZoneMappings[fullName] || fullName})`;
});

console.log(formattedDate);
// 输出示例:Tue May 07 2024 14:57:43 GMT+0530 (IST)

方案二:利用Intl.DateTimeFormat API(更通用)

借助现代浏览器支持的Intl.DateTimeFormat API,可以直接获取时区缩写,无需手动维护映射表:

const d = new Date();
const originalDateStr = d.toString();

// 获取时区缩写
const timeZoneAbbreviation = new Intl.DateTimeFormat('en-US', { 
  timeZoneName: 'short' 
})
.formatToParts(d)
.find(part => part.type === 'timeZoneName').value;

// 拼接成目标格式
const formattedDate = `${originalDateStr.split('(')[0]}(${timeZoneAbbreviation})`;

console.log(formattedDate);
// 输出示例:Tue May 07 2024 14:57:43 GMT+0530 (IST)

注意事项

  • 方案二依赖Intl API,IE11及更早版本不支持,若需兼容旧环境建议使用方案一。
  • 部分时区缩写存在歧义(比如CST可代表多个时区),需根据业务场景确认需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:17:08