javascript – Moment.js timezone valueOf返回错误的时间戳

我想使用moment.js将输入时刻转移到不同的时区并获取其时间戳.

moment.tz(moment(), "Pacific/Auckland").valueOf();

问题是,当我这样做时,moment.tz()对象看起来很好,但是valueOf()方法以某种方式计算回到我的计算机上设置的时区.

我的做法有什么问题?

非常感谢.

编辑1

moment.tz(moment(),“Pacific / Auckland”).format();
给了我正确的时间字符串

moment.tz(moment(),“Pacific / Auckland”).valueOf(“x”);
给我几毫秒,但在我当地的时间再次,而不是在“太平洋/奥克兰”时间

所以毫秒计算毫秒将其转换回当地时间,但为什么呢?并且有什么正确的方法可以在预期的时区内获得毫秒数?

解决方法:

我认为可能只是概念上缺乏对时间戳实际上是什么的理解.

比方说我现在的时间是:

2016年4月25日上午10:21(UTC-7)

这一刻的时间戳是多少?

1461604867

什么是UTC时间?

04/25/2016 @ 5:21 pm(UTC)

这一刻的时间戳是多少?

1461604867

什么,同样,为什么?

一个时刻是相同的时间戳,无论它在哪个时区.当你调用moment()时,它指的是现在正确的,这个特定的时刻在宏观的时空连续体中.与Date.now()相同.实际上,你读到这一刻的那一刻,仍然是你,我在哪里,在日本,在南极洲,在叙利亚,在格陵兰岛等地的完全相同的时刻.恰巧这一刻在视觉上得到了表现(时间字符串)人类在每个区域以不同的方式.

时刻时区不会影响它存储的实际Date对象.它只影响日期的直观表示.视觉表示随时区变化.这就是为什么你不会得到不同的时间戳.

上一篇:java – 如何使用System.currentTimeMillis()以秒为单位测量时间跨度?


下一篇:如何将字符串Date转换为long millseconds