new Date() 在错误的时区

new Date() in wrong time zone

此时 post 我的当前时间是 2017-01-10T19:23:00.000Z new Date() 比我当前的时区早 2017-01-11T00:23:19.521Z 5 小时。这会影响我的数据在 MongoDB 中的存储方式。我知道我可以使用

将时间设置为 5 小时前
var datetime    = new Date();
 datetime.setHours(datetime.getHours()-5); 

但我更喜欢用更好的方法来做到这一点。 I tried using this.我还是一样的时间。在我的代码的其他部分,我得到 Tue Jan 10 2017 19:54:30 GMT-0500 (EST) 与初始时间不同。如果有人能指出这里出了什么问题,我会很高兴。

使用 moment.js 是完成您的要求的最简单方法。

moment().format() // "2017-01-11T13:56:15-05:00"

输出是一个 ISO-8601 格式的字符串,时区偏移在您当地的时区有效。

您可以自己使用大量代码读取 Date 对象的各种属性,从这些值构建一个字符串。但它不是以这种方式内置到 Date 对象中。

此外,请注意,任何时候您尝试通过时区偏移调整 Date 对象时,您只是在选择不同的时间点。您实际上并没有更改 Date 对象所使用的时区的行为。

如果您不想使用外部 JS 文件,您可以简单地使用以下代码获取当前时区。

new Date().toString();