繁体   English   中英

nodejs(new Date())。toJSON()返回错误的时间

[英]nodejs (new Date()).toJSON() returns a wrong time

我正在使用以下代码来获取nodejs中的当前日期和时间。

var date = (new Date()).toJSON();

转换为JSON后,返回错误的时间和错误的时区,如下所示:

2018-01-03T11:16:38.773Z

但没有toJSON(),它将以正确的时区返回实时时间

Wed Jan 03 2018 14:47:12 GMT+0330 (Iran Standard Time)

格式不同是因为:

toJSON方法是Date JavaScript对象的内置成员。 它为UTC时区返回一个ISO格式的日期字符串(用后缀Z表示)。

你可以做什么:

您可以覆盖Date类型的toJSON方法,或者为其他对象类型定义toJSON方法,以在JSON序列化之前实现特定对象类型的数据转换。

资源

如果您想要相同的结果,则可以只使用toString而不是toJSON:

var date = new Date().toString();
2018-01-03T11:17:12.000Z === Wed Jan 03 2018 14:47:12 GMT+0330 (Iran Standard Time)

左边的一个是ISO时区,右边的一个基本上是浏览器时区。

(new Date()).toJSON()转换为ISO时区

因此,转换为字符串的简单方法是

var date = (new Date()).toString(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM