erh*_*355 5 c# mongodb mongodb-.net-driver asp.net-core
虽然我用 装饰了我的Datetime财产BsonDateTimeOptions,但它仍然不起作用,时间插入到数据库中,比我的当地时间晚 3 小时。(我认为是 utc)
我的基础抽象类
public abstract class MongoBaseModel
{
public ObjectId Id { get; set; }
[BsonElement]
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime InsertedAt{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的实体
public class RockSongs:MongoBaseModel
{
[BsonElement("Name")]
public string Name { get; set; }
[BsonElement("Singer")]
public string Singer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
数据库版本 v4.2.1
MongoDb.Driver 2.7.2
根据文档:
MongoDB 默认以 UTC 格式存储时间,并将任何本地时间表示转换为这种形式。必须操作或报告某些未修改的本地时间值的应用程序可以将时区与 UTC 时间戳一起存储,并在其应用程序逻辑中计算原始本地时间。
DateTimeKind.Local和DateTimeKind.Utc当涉及序列化时没有区别。在这两种情况下,您的 .NETDateTime都将存储为 UTC。这个属性变得有用的时刻就是反序列化。如果您申请,MongoDB .NET 驱动程序将自动将您的 UTC 日期时间转换为您本地计算机的时区DateTimeKind.Local。
MongoDB 将日期存储为 UTC 的事实直接来自BSON规范。
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |