【发布时间】:2019-05-31 10:00:20
【问题描述】:
我正在寻找一种在本地时间转换 Javascript 日期对象的方法,假设时区像 America/New_York:
2019-01-04T00:00:00.000Z
我想将此转换为UTC 中的日期对象。
2019-01-04T05:00:00.000Z
const timezone = 'America/New_York';
const localMidnight = new Date(Date.UTC(2019, 0, 4)) // 2019-01-04T00:00:00.000Z
moment.tz(localMidnight, timezone).utc().toDate()
这里仍然返回与输入 2019-01-04T00:00:00.000Z 相同的内容。
> m(localMidnight, 'America/New_York').tz('utc').toDate()
2019-01-04T00:00:00.000Z
> m(localMidnight, 'America/New_York').tz('UTC').toDate()
2019-01-04T00:00:00.000Z
> m(localMidnight, 'America/New_York').utc().toDate()
2019-01-04T00:00:00.000Z
【问题讨论】:
-
这是你想要做的吗? stackoverflow.com/questions/10087819/…
-
更新了,我试过了还是不行。
-
试试
new Date(2019,0,1).toGMTString() -
或
new Date(2019,0,1).toISOString()获取您发布的格式 -
这个问题令人困惑 :-) 最后带有
Z的日期字符串已经是 UTC,而不是本地的。您有实际的日期对象或字符串吗?为什么要使用Date.UTC来获取非 UTC 日期?实际的日期对象已经知道它的 UTC 时间,使用.toISOString来查看它。
标签: javascript date timestamp momentjs