2014-09-24 101 views
0

我正在使用JSON.Stringfy()將我的日期轉換爲字符串格式。但是返回的日期是我係統的UTC時間。 這裏是代碼。json.stringfy更改日期

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日期。有什麼辦法來獲得預期的結果..任何意見將是有價值的.. 在此先感謝

+0

這就叫'Date.prototype.toISOString()'你的約會對象,而字符串化。它力量改變了它的價值。您仍然可以從結果字符串中獲取IST。 – mithunsatheesh 2014-09-24 10:47:01

+1

您爲什麼期望JSON.stringify將您的日期從印度的4:03更改爲倫敦的4:03? – 2014-09-24 10:55:37

回答

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);

+0

好吧,我明白了。但是我想要的是「2014-09-24T16:03:22.135」而不是「2014-09-24T10:33:22.135Z」,其中json.stringfy返回..我不想得到它以UTC格式。我希望我的當地時間 – user3526989 2014-09-24 11:21:15

+0

運行上面的片段。如果使用該UTC字符串創建新的日期對象,則可以在任何時區中表示日期對象。 – mithunsatheesh 2014-09-24 11:23:07

+0

@mmithunsatheesh謝謝reply..sorry再次提及我想要2014-09-24T16:03:22.135 + 05:30之類的東西,但不是以UTC格式顯示的東西..您的最後一次提醒給我類似於Wed Sep 24 2014 16 :03:22 GMT + 0530 ..我想以上述格式..有什麼辦法嗎? – user3526989 2014-09-24 11:35:25