如何指定时区,以便时刻为该时区提供正确的日期?
How do I specify timezone such that moment will give proper date for that timezone?
目前,我从第 3 方 api 那里得到的唯一日期字符串是 2015-12-22T19:00:00.000
假定为 'America/New_York' 时区 (EST)。
但是当我将它传递给 moment 时,它正在使用我计算机上的本地时区 (PST)。
我需要对比较两个日期的时刻日期对象进行数学运算,这打乱了我的计算。
我试过这样做,但它仍然给我太平洋标准时间:
moment('2015-12-22T19:00:00.000').tz('America/New_York')
应该是美国东部时间晚上 7 点。
我使用 moment-timezone 插件解决了这个问题...@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)
,这只是给我当前时间。
目前,我从第 3 方 api 那里得到的唯一日期字符串是 2015-12-22T19:00:00.000
假定为 'America/New_York' 时区 (EST)。
但是当我将它传递给 moment 时,它正在使用我计算机上的本地时区 (PST)。
我需要对比较两个日期的时刻日期对象进行数学运算,这打乱了我的计算。
我试过这样做,但它仍然给我太平洋标准时间:
moment('2015-12-22T19:00:00.000').tz('America/New_York')
应该是美国东部时间晚上 7 点。
我使用 moment-timezone 插件解决了这个问题...@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)
,这只是给我当前时间。