我该如何指定时区,以便该时刻能给出该时区的正确日期

How do I specify timezone such that moment will give proper date for that timezone?

本文关键字:时区 日期 时刻 何指 定时区      更新时间:2023-09-26

目前,我从第三方api返回的唯一日期字符串是2015-12-22T19:00:00.000

假定为"美国/纽约"时区(EST)。

但当我把它传递到那个时刻时,它正在使用我电脑上的本地时区(PST)。

我需要对比较两个日期的即时日期对象进行数学运算,这会打乱我的计算。

我试过这样做,但它仍然给我PST:

moment('2015-12-22T19:00:00.000').tz('America/New_York')

应该是东部时间晚上7点。

我使用即时时区插件找到了它。。。同样@zerkms的评论也是正确的。

const start_datetime_est = moment.tz('2015-12-22T19:00:00.000', 'America/New_York');
const end_datetime_est = moment(start_datetime_est).tz('America/New_York').add(3, 'hours');

您必须将ISO8601日期字符串作为moment.tz(str, zone)传递——我正在执行moment(str).tz(zone),它只是给我当前时间。