我看到一些令人困惑的行为:
我在GMT时区。我关闭了我的wifi,以确保互联网不会弄乱任何东西。
然后我将此代码加载到我的应用程序(跨浏览器,但在Android上运行):
var todayDate = new Date();
console.log(todayDate);
这给了我:Thu Jun 22 2017 20:52:02 GMT-0500
。我在console.log中看到了这一切,并将其悬停在Chrome调试器中。
但是,我现在想改变我的时区。所以我退出了应用程序,然后进入系统设置,并将其更改为新西兰时间(+12:00)。我重启了我的应用程序,但现在我仍然看到了这个:Thu Jun 22 2017 20:52:02 GMT-0500 (NZST)
。注意,它拿起NZST,但仍然说GMT-0500。
这是一个问题,因为虽然UTC时间仍然有效(自然地),现有代码的设置方式,本地时间已存储在其他地方。
我通过将本地时间转换为UTC并计算偏移来解决这个问题,但现在当我更改偏移量时,我没有得到正确的时区(根据平板电脑的时区)。有人有什么想法吗?