新的Date()在错误的时区

Eko*_*kom 7 javascript timezone datetime node.js isodate

在这篇文章的时候我的当前时间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); 
Run Code Online (Sandbox Code Playgroud)

但是我更喜欢一种更好的方法。我尝试使用此。我仍然有相同的时间。在代码的其他部分,我Tue Jan 10 2017 19:54:30 GMT-0500 (EST)与初始时间有所不同。如果有人指出这里出了问题,我会很高兴。

Mat*_*int 5

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

moment().format() // "2017-01-11T13:56:15-05:00"
Run Code Online (Sandbox Code Playgroud)

输出是 ISO-8601 格式的字符串,时区偏移在您的本地时区生效。

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

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