Node.js和MongoDB时区问题UTC未被驱动程序正确转换?
我有一个奇怪的事情发生,我希望有人能指出我失踪。
在MongoDB中,我有一个types为Date的字段DT
2014-10-01 10:28:04.329-04:00
MongoDB中date的例子
当我使用MongoClient从Node.js中查询MongoDB时,Node.js返回这个:
2014-10-01T14:28:04.329Z
据我所知,驱动程序是假设将UTC转换为当地时间。 就我而言,应该是东部时间(EDT)。 为什么Node会添加4个小时呢?
我使用Java驱动程序从Java将date加载到MongoDB中。 该variables是使用设置的
new Date();
节点不添加4小时。 两者显示完全相同的瞬间。
2014-10-01 10:28:04.329-04:00
是完全一样的
2014-10-01T14:28:04.329Z
只有一个在EDT时区,与UTC有-04:00
偏移(所以在那之前是四个小时),另一个是UTC。
可能你有你的服务器在EDTconfiguration,你的客户端设置为UTC或其他方式。
除非你需要完全相同的string,我不会担心。
或者,甚至更好的是,将客户机和服务器机器设置为同一时区, 最好是UTC 。