尽管我用Datetime
装饰了BsonDateTimeOptions
属性,但仍然无法正常工作,并且时间未插入数据库,比本地时间晚了3个小时。(我认为这是utc)我的基础抽象课
public abstract class MongoBaseModel
{
public ObjectId Id { get; set; }
[BsonElement]
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime InsertedAt{ get; set; }
}
我的实体
public class RockSongs:MongoBaseModel
{
[BsonElement("Name")]
public string Name { get; set; }
[BsonElement("Singer")]
public string Singer { get; set; }
}
Db版本v4.2.1
MongoDb.Driver 2.7.2
MongoDB默认将时间存储在UTC中,并将所有本地时间表示形式转换为这种形式。必须运行或报告某些未修改的本地时间值的应用程序可以将时区与UTC时间戳一起存储,并在其应用程序逻辑中计算原始本地时间。
[串行化在DateTimeKind.Local
和DateTimeKind.Utc
之间没有区别。在两种情况下,您的.NET DateTime
都将存储为UTC。该属性有用的时刻是
反序列化。如果您应用DateTimeKind.Local
,则MongoDB .NET驱动程序会自动将您的UTC日期时间转换为本地计算机的时区。