具有C#驱动程序的MongoDb以ISO格式存储日期

时间:2016-06-23 14:04:41

标签: c# mongodb datetime

出于某种原因,MongoDB C#驱动程序将日期存储为自Unix纪元以来的毫秒数。

导致日期被序列化,如此

"ends" : [ 
        NumberLong(636021024270000000), 
        0
    ]

我希望日期是人类可读和ISO格式的序列化。这个问题有方法解决吗?我找不到一个。

1 个答案:

答案 0 :(得分:-1)

我遇到了同样的问题并以这种方式修复:

YourInitializedObjectWithDateField item = GetObject();

JavaScriptSerializer jss = new JavaScriptSerializer();
jss.MaxJsonLength = int.MaxValue;
var json = jss.Serialize(item).Replace("\"\\/Date(", "new Date(").Replace(")\\/\"", ")");

BsonDocument bsonDoc = BsonDocument.Parse(json);

按照这种方法,您应该以ISO格式获取Mongo中存储的日期。诀窍是以一种方式传递日期,就像初始化日期对象一样。