我有一个模型,表示带有日期字段的mongo文档。
class model
{
...
[BsonElement("dateCreated")]
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime DateCreated { get; set; }
...
}
我知道mongo会在UTC时间存储值,所以我使用BsonDateTimeOptions
属性在当地时间自动表示它们。
当我创建模型的instanse并将其存储到mongo时,它按预期工作。但是,当我从外部源(客户端到我的服务)接收数据并且想要我的模型时,它会存储本地时间。
编译器显示2个不同实例的相同值(在插入mongo之前),但在db中,第一个存储在UTC中,第二个存储在本地时间。
答案 0 :(得分:0)
我相信你需要在保存之前为你的json解析数据分配一个Kind,无论是本地还是Utc。这将告诉mongo驱动程序它代表什么,以便它在保存之前不会错误地转换为另一种格式。
someDate = DateTime.SpecifyKind(someDate, DateTimeKind.Utc)