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

如何让JavaScript返回EST时区名称而非EDT或GMT?

如何让JavaScript时间始终显示为EST时区缩写

首先明确:没有直接的时区参数能让toLocaleString始终输出EST,原因如下:

  • 使用America/New_York时,JS会根据纽约时区的夏令时规则自动切换显示EDT(夏令时)或EST(冬令时),这是符合时区标准的行为。
  • 直接指定timeZone: 'EST'时,因为EST不是标准的IANA时区标识符,引擎会将其解析为UTC-5偏移,但输出的时区名称会是GMT-5而非EST。

如果你的需求是强制显示EST,不管当前是否处于夏令时,可以用以下两种方法实现:

方法一:替换时区名称

先使用America/New_York生成标准时间,再把自动输出的EDT或EST替换为固定的EST:

const date = new Date();
// 生成仅包含时间部分的格式(不含日期)
const timePart = date.toLocaleString('en-US', {
  timeZone: 'America/New_York',
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  hour12: true
});
// 强制替换时区缩写并拼接最终格式
const finalTime = `${timePart.replace(/EDT|EST/, '')} EST`.trim();
console.log(finalTime); // 输出示例:"03:32:11 PM EST"

方法二:手动拼接时间与时区

直接生成时间部分,再手动加上EST,避免依赖时区名称的自动输出:

const date = new Date();
const formattedTime = date.toLocaleTimeString('en-US', {
  timeZone: 'America/New_York',
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  hour12: true
});
console.log(`${formattedTime} EST`); // 输出示例:"03:32:11 PM EST"

如果你的需求是仅在冬令时显示EST,夏令时显示EDT,那直接使用timeZone: 'America/New_York'即可,这是符合时区规范的正确做法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:40:29