您好我正在使用节点js + mongodb。
当我将数据插入集合时,数据存储为默认的ISODate,例如。 ISODate(" 2016-06-17T13:00:21.665Z&#34)
我想插入日期字段应该以UTC格式存储。
它已经以UTC格式存储或需要更改代码中的任何内容吗?
请有人建议我。
我的代码:
var query = {};
query.created_by = 'admin';
query.created_on = new Date();
var collection = mongoUtil.list;
collection.insert(query, function(err, item) {
if (!err && item) {
console.log("success");
} else {
console.log("error");
}
});
Mongo插入数据:
{ "created_by" : "admin", "created_on" : ISODate("2016-06-17T13:00:21.665Z") }
我查看了参考资料 - Mongo UTC Refference 来自文件:
答案 0 :(得分:0)
如果您直接插入或更新日期,那么您将存储时间戳。当您从UTC format
查询时,它仍会以Node.js
的形式存储,甚至会以UTC格式返回。
但是你可能想也可能不想相信时间是正确的。因此,您可以创建或使用任何方法来确保UTC格式。
答案 1 :(得分:0)
是的,正如abdulbarik的回答中所提到的,MongoDB确实以UTC格式保存日期。
日期对象: -
您可以使用getTimezoneOffset()方法来获取UTC和本地时间之间的差异。
var d = new Date()
var n = d.getTimezoneOffset();
console.log('date obj ==>' + d);
console.log('time zone obj ==>' + n);
控制台日志: -
你可以看到时区obj有" -60"。我在 GMT + 1 。
date obj ==>Mon Sep 12 2016 10:17:28 GMT+0100 (GMT Daylight Time)
time zone obj ==>-60
MongoDB将日期保留为UTC: -
我使用过对象" d" (即新的Date())在MongoDB中保留日期。虽然我在GMT + 1上,但日期以UTC格式存储。
"timestamp" : ISODate("2016-09-12T09:17:28.193Z"),