为什么 new Date(dateString) return 具有完全相同输入的不同设备上的两个不同日期?

Why does new Date(dateString) return two different dates on different devices with exactly the same input?

知道我的时区是 GMT+2,考虑下面的代码:

为什么输出不一致,我该如何解决?

我的问题与其他类似问题(例如 Why does Date.parse give incorrect results?)不同,因为在我的例子中,我使用的是完全相同的字符串,只是设备不同。

最初的问题是 Date.parse 在一台设备上将我的本地时间作为时区,而在另一台设备上则采用 UTC。

通过在我的初始 dateString 末尾附加一个 Z,无论使用什么设备,我都强制将日期始终视为 UTC,从而实现与 Date.parse() 一致的结果。

为了获得当地时间的日期,我使用了这个问题的答案:。

你的日期不同是因为时区。 您可以尝试将日期转换为 UTC 日期以获得这样的完美结果。

    myDate = "2017-05-12T09:00:00";
    dateFoo = new Date(myDate).toUTCString();