mongo shell的时间不匹配

时间:2012-02-06 13:25:09

标签: mongodb

当我获得日期对象并将其打印在mongo shell中时,它会显示两个不同的时间,如下所示:

>新日期()
2012年2月6日星期一18:49:40 GMT + 0530(IST)
> printjson({created_at:new Date()})
{created_at:ISODate(“2012-02-06T13:19:40.313Z”)}

这两次是不同的,我错了。

2 个答案:

答案 0 :(得分:1)

这是因为mongodb始终以UTC格式存储日期,但javascript显示您当地的时间。和printjson内部mongodb shell函数,将日期从您当地的时区转换为utc格式。所以它显示从你当前时间后退-5.30小时。

答案 1 :(得分: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?

欢呼声, 德里克