如何使用find函数检索本地时区mongo中的日期字段

时间:2016-11-02 17:47:57

标签: mongodb date datetime

当我在我的收藏中查找信息时

db.getCollection('dectar_driver_connection_log').find({})

我在UTC中获取日期:

enter image description here

我应该以编程方式添加哪个参数在本地时区获取日期,因为mongo将其存储在UTC中?

2 个答案:

答案 0 :(得分:1)

documentation

  

必须在某些未经修改的当地时间运营或报告的应用程序   value可以将时区与UTC时间戳一起存储,然后进行计算   原始的本地时间在他们的应用程序逻辑中。

(你也可以在JavaScript中找到一个例子)

答案 1 :(得分:0)

可以使用序列化选项完成, 例如C#

public class Model {
        public String Id { get; set; }
        public string Name { get; set; }
        public DateTime DateTimeProperty { get; set; }
    }

 var localTimeOption = new DateTimeSerializationOptions { Kind = DateTimeKind.Local };
            BsonClassMap.RegisterClassMap<Model>(cm => {
                cm.MapIdProperty(c => c.Id);
                cm.MapProperty(c => c.Name);
                cm.MapProperty(c => c.DateTimeProperty)
                    .SetSerializationOptions(localTimeOption);
            });

然后

var query = Query.EQ("_id", m1.Id);
            var m2 = collection.FindOne(query);
Console.Log(m2.DateTimeProperty.ToShortTimeString());