你好,我在节点js + mongodb中工作。
当我将数据插入到集合中时,数据被存储为默认的ISODate,例如。ISODate("2016-06-17T13:00:21.665Z")
我想插入应该存储在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") }我查看了文档中的refference - 蒙戈世界协调时风险:
发布于 2016-09-12 09:39:13
是的,正如abdulbarik的回答中提到的,MongoDB确实在UTC保存了日期。
Date对象:-
您可以使用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 ==>-60MongoDB将日期保存在UTC:-中。
我使用对象"d“(即新日期())在MongoDB中持久化日期。虽然我在GMT+1上,但日期存储在UTC。
"timestamp" : ISODate("2016-09-12T09:17:28.193Z"),发布于 2016-09-12 09:26:03
如果直接插入或更新日期,则将存储时间戳。它仍将作为UTC format存储,甚至在您从Node.js查询时返回为UTC格式。
但你可能想要也可能不愿相信时机是正确的。因此,您可以创建或使用任何方法来确保UTC格式。
https://stackoverflow.com/questions/39445952
复制相似问题