知道我的时区是GMT + 2,请考虑以下代码:
在Selfy 4G手机上运行:
myDate = "2017-05-12T09:00:00";
dateFoo = new Date(myDate); // Fri May 12 2017 11:00:00 GMT+0200 (CEST)
在Galaxy S7上运行:
myDate = "2017-05-12T09:00:00";
dateFoo = new Date(myDate); // Fri May 12 2017 09:00:00 GMT+0200 (CEST)
为什么输出会有不一致之处,我将如何解决?
我的问题与其他类似问题(例如this answer)不同,因为在我的情况下,我使用完全相同的字符串,而且它是不同的设备。
答案 0 :(得分:0)
最初的问题是,一台设备上的Date.parse将我的本地时间作为时区,而在另一台设备上则采用了UTC。
通过在我的初始dateString的末尾附加一个Z,无论设备是什么,我都强制将日期视为UTC,因此使用Date.parse()实现一致的结果。
为了在当地时间获取日期,我使用了这个问题的答案:https://stackoverflow.com/a/1486612/1875581。