gpt4 book ai didi

c# - BsonDateTimeOptions 不设置本地日期时间

转载 作者:行者123 更新时间:2023-12-04 11:27:21 24 4
gpt4 key购买 nike

虽然我装饰了我的DatetimeBsonDateTimeOptions 的属性(property),它仍然不起作用,时间插入到数据库中,比我的本地时间晚了 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; }
}



数据库版本 v4.2.1

MongoDb.Driver 2.7.2

最佳答案

根据 documentation :

MongoDB stores times in UTC by default, and will convert any local time representations into this form. Applications that must operate or report on some unmodified local time value may store the time zone alongside the UTC timestamp, and compute the original local time in their application logic.


DateTimeKind.Local之间没有区别和 DateTimeKind.Utc说到 序列化 .在这两种情况下,您的 .NET DateTime将存储为 UTC。该属性变得有用的时刻是 反序列化 .如果您申请 DateTimeKind.Local,MongoDB .NET 驱动程序将自动将您的 UTC 日期时间转换为您本地计算机的时区。 .

MongoDB 将日期存储为 UTC 的事实直接来自 BSON规范。

关于c# - BsonDateTimeOptions 不设置本地日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59448937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com