节点+ Mongodb + ISODate +时区问题
Node + Mongodb + ISODate + Timezone issue
你好,我在node js + mongodb工作。
当我将数据插入集合时,数据被默认保存为ISODate。ISODate (2016 - 06 - 17 t13: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") }
我检查了参考- Mongo UTC参考从文档:
- Date()在mongo shell中以字符串形式返回当前日期。
- new Date()返回当前日期作为Date对象。芒果壳用ISODate帮助器包装Date对象。输入了ISODateUTC。
是的,正如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 ==>-60
MongoDB持久化UTC日期:-
我已经使用对象"d"(即新的日期())在MongoDB中持久化的日期。虽然我使用的是GMT+1,但日期是用UTC存储的。
"timestamp" : ISODate("2016-09-12T09:17:28.193Z"),
如果直接插入或更新Date,那么将存储一个时间戳。它仍将被存储为UTC format
,即使当您从Node.js
查询时它以UTC格式返回。
但是你可能愿意也可能不愿意相信时间是正确的。因此,你可以创建或使用任何方法来确保UTC格式
相关文章:
- javascript日期时区问题
- NetSuite RESTlet,提交日期/时区问题
- 使用 REST API 和 JS 时的时区问题
- Javascript 日期对象时区问题 - 不同的时区
- PHP 中的用户时区问题修复
- 时区的JavaScript日期问题
- 时区偏移的 D3 日期分析问题
- 完整日历日单击并删除了时区更改的事件日期问题
- Javascript转换时区问题
- Javascript到PHP的日期转换在时区中丢失.也许mysql保存问题
- 当javascript中的系统首选项和用户首选项不同时,会出现时区转换问题
- 时间戳日期时区问题在dojo
- 烦人的javascript时区调整问题
- 角时区CDT/CST问题
- 节点+ Mongodb + ISODate +时区问题
- 更改GMT(时区)时出现问题
- 来自Windows机器的date对象——时区问题
- Date.Parse()的时区问题
- Javascript Date问题返回比设置的时区少1天
- 在Electron中加载时区库时出现问题