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

如何使用moment-timezone将美中部时间转美东部时间并指定原时区

解决方法:指定输入时间的时区

你当前的代码问题在于:解析03/05/2024 2:30 PM时,moment会默认把它当成运行环境的本地时区来处理,再转换到美国东部时间——但实际上你需要明确告诉moment:这个时间属于美国中部时区(America/Chicago)。

有两种靠谱的实现方式:

方法1:解析时直接指定时区(推荐)

使用moment.tz()方法直接解析带时区的时间,这是最直观且不易出错的方式:

moment.tz('03/05/2024 2:30 PM', 'MM/DD/YYYY hh:mm A', 'America/Chicago')
  .tz('America/New_York')
  .format('MMMM D | hh:mm A')

这里的第三个参数'America/Chicago'用来指定输入时间所属的时区,moment会直接把输入字符串解析为该时区的时间,之后调用tz('America/New_York')就能正确转换到东部时区。

方法2:为已解析的时间绑定时区

如果你已经通过moment()创建了对象,也可以通过tz()方法的第二个参数强制绑定时区:

moment('03/05/2024 2:30 PM', 'MM/DD/YYYY hh:mm A')
  .tz('America/Chicago', true) // true表示"将当前时间视为该时区的本地时间,不做时区转换"
  .tz('America/New_York')
  .format('MMMM D | hh:mm A')

第二个参数true的作用是告诉moment:不要把当前时间从本地时区转换到America/Chicago,而是直接把这个时间值认定为America/Chicago时区的时间。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 18:39:56