2012-02-06 66 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