Mongodb mongoshell中的时间失配

Mongodb mongoshell中的时间失配,mongodb,Mongodb,当我获取date对象并在mongo shell中打印它时,它会显示两个不同的时间,如下所示: 新日期() 2012年2月6日星期一18:49:40 GMT+0530(IST) >printjson({created_at:new Date()}) {创建时间:ISODate(“2012-02-06T13:19:40.313Z”)} 这两个时间不同,我错了。这是因为mongodb总是以UTC格式存储日期,但javascript显示您的本地时间。和printjson内部mongodb shell函数

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

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


这两个时间不同,我错了。

这是因为mongodb总是以UTC格式存储日期,但javascript显示您的本地时间。和printjson内部mongodb shell函数,用于将日期从本地时区转换为utc格式。因此,它显示的时间比您当前的时间倒退了-5.30小时。

时间没有不同,它们完全相同!它只是在不同的时区表示相同的时间。ISODate中的“Z”表示“UTC”(或一些人试图称之为:GMT)。你在IST(我想是印度标准时间),也就是格林尼治时间+0530。18:49:40@GMT+5:30与13:19@GMT完全相同

当我运行与shell上显示的代码相同的代码时,我得到:

> new Date() ISODate("2012-02-06T13:34:10.667Z") >新日期() ISODate(“2012-02-06T13:34:10.667Z”) 如你所见,这也是“Z”的意思。也许您运行的是旧版本的shell

干杯,
德里克

我希望第一次以json格式打印,如果有任何建议。因为我在条件语句中使用了相同的日期对象,所以它给出了错误的结果。