json.stringify改变了日期

时间:2014-09-24 10:36:28

标签: javascript json date

我正在使用JSON.Stringfy()将我的日期转换为String格式。但是返回的日期是我系统的UTC时间。 这是代码。

var dateFrom;

dateFrom=new Date(); // outputs--> Wed Sep 24 2014 16:03:22 GMT+0530 (India Standard Time) 

dateFrom=JSON.stringify(x); //outputs--> "2014-09-24T10:33:22.135Z" 

//Expected result--> "2014-09-24T16:03:22.135Z"

我认为有些东西会将我当前的日期转换为UTC日期。有没有办法得到预期的结果..任何评论都是有价值的.. 提前谢谢

1 个答案:

答案 0 :(得分:0)

JSON遵循通用格式,同时将日期对象转换为字符串。日期被编码为ISO 8601字符串,然后在序列化时被视为字符串。

但这并不意味着你的日期对象被修改了。它只是以JSON强制执行的不同格式表示。所以日期仍然指向您通过IST​​引用的相同时间戳。

所以你声明它改变了日期是错误的,它只是改变了表示格式。



var d = new Date(); 
//shows local format
alert(d);

djson=JSON.stringify({"date":d}); 
//shows UTC format
alert(djson);

dobj=JSON.parse(djson);
//again UTC format 
alert(dobj.date);

d = new Date(dobj.date);
//again local format 
alert(d);