是时候在时区之间无法获得时差吗?

问题描述 投票:0回答:1

我在NodeJS上有一个日期字符串

2019-02-25T09:00:00Z

我创建了一个时刻对象,并将时区设置为纽约

let a = moment.tz("2019-02-25T09:00:00Z", "America/New_York");

然后,我创造了另一个时刻对象,同时,但设置了一个不同的地方,亚利桑那州

let b = moment.tz("2019-02-25T09:00:00Z", "America/Phoenix");

console.log(a.diff(b));

打印出0毫秒。我预计会得到7200000(2小时的时差)。为什么我没有得到这个差异?

timezone momentjs timezone-offset moment-timezone
1个回答
3
投票

“2019-02-25T09:00:00Z”表示“2019年2月25日上午9点,UTC”。 “Z”部分表示该值为UTC。

您创建了两个表示同一时刻的值,但是在两个不同的时区 - 因此它们将具有不同的本地值,但它们都表示相同的瞬间,因此它们之间的差异为0。

如果你想创建一个代表“在2019年2月25日上午9点,在给定时区内”的值,那么只需删除Z.(如果您指定的值不明确或由于偏移而跳过,我不知道Moment会做什么时区的变化,但如果您要使用任意数据进行此操作,那么您应该调查一下。)

© www.soinside.com 2019 - 2024. All rights reserved.