2012-02-06 54 views
1

當我到達的日期對象,並在蒙戈外殼打印出來,它顯示兩個不同的時間如下:

>新的Date()
星期一2012年2月6日18點49分40秒GMT + 0530(IST)
> printjson({created_at:新的Date()})
{created_at:ISODate( 「2012-02-06T13:19:40.313Z」)}在蒙戈時間不匹配殼

兩個時代不同了,什麼我錯了。

回答

1

這是因爲mongodb總是以UTC格式存儲日期,但javascript會顯示當地時間。和printjson內部的mongodb shell函數將日期從本地時區轉換爲utc格式。因此,它顯示從當前時間起-5.30小時。

+0

我想在JSON格式要打印的第一時間,任何建議。因爲我在條件語句中使用了相同的日期對象,它給了我錯誤的結果。 – sudesh 2012-02-06 13:30:18

+0

謝謝,我明白了。 – sudesh 2012-02-06 13:36:58

1

時代不一樣,它們完全一樣!這只是在不同時區表達的同一時間。 ISODate中的「Z」表示「UTC」(或者一些人試圖稱之爲GMT)。你在IST(印度標準時間,我猜)是在GMT + 0530。 18:49:40 @ GMT + 5:30與格林尼治標準時間13:19完全相同。

當我運行你的shell中相同的代碼,我得到:

 
> new Date() 
ISODate("2012-02-06T13:34:10.667Z") 

正如你所看到的,也與「Z」。也許你正在運行一箇舊版本的shell?

歡呼聲, 德里克

+0

謝謝,我明白了。 – sudesh 2012-02-06 13:38:03