如何将UTC时间字符串转换为本地时区中正确的moment.js对象

How can I convert a UTC time string to the correct moment.js object in my local timezone?

本文关键字:时区 对象 js moment UTC 时间 字符串 转换      更新时间:2023-10-17

我有以下字符串,我知道它在UTC时区:2008-03-09 18:02:29

如何使用moment.js将其转换为本地时区中的对象?

我尝试了以下操作,但它不会为我的本地时区调整时间:

> moment("2008-03-09 18:02:29 UTC").format('YYYY-MM-DD HH:mm:ss zz')
"2008-03-09 18:02:29"

PS。我住在华盛顿特区附近(UTC-4)。但这需要为来自世界任何地方的任何用户正常工作。

我可以在没有moment.js的情况下做到这一点(但它只适用于Chrome,而不是FF):

new Date('2008-03-09 18:02:29 UTC');

那么moment.js代码与此类似吗??

您知道您有一个UTC日期,所以您希望在UTC模式下进行解析。之后,使用Moment的.local()函数返回到当前用户的时间。

moment.utc('2008-03-09 18:02:29').local().format()
"2008-03-09T13:02:29-05:00"

我是-5岁,正如你所看到的,日期被推迟了五个小时。

带即时时区

moment("2008-03-09 18:02:29 UTC").tz('America/New_York'); // => EST