gpt4 book ai didi

mongodb - 如何正确保存日期?

转载 作者:IT老高 更新时间:2023-10-28 13:03:42 26 4
gpt4 key购买 nike

我正在尝试保存日期(使用 C# 官方驱动程序):

val = DateTime.Parse(value).Date; //Here date is {11/11/2011 12:00:00 AM}
var update = Update.Set("Date", val);
...

当我从数据库中选择日期时,值为 {11/10/2011 10:00:00 PM}

如何只保存我想要的日期?

最佳答案

c# 驱动程序默认情况下(没有额外设置)将本地日期作为 utc 日期保存到数据库中(日期 - 时区偏移量),但无需任何操作即可读取(因此,utc 日期)。

因此,当您从数据库加载日期时间时,您会在 2 小时内收到差异(您的时区偏移量)。 mongodb c#驱动程序在反序列化期间将utc日期转换为本地时区日期有两种方法:

1.通过特定日期字段的属性:

[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime SomeDateProperty {get;set;}

2.通过所有日期时间字段的全局设置(默认为UtcInstance):

DateTimeSerializationOptions.Defaults = DateTimeSerializationOptions.LocalInstance;

执行 #1 或 #2 后,您将看到本地日期。

更新:


#2 在最新的驱动程序版本中已过时,因此请改用以下代码:

BsonSerializer.RegisterSerializer(typeof(DateTime), 
new DateTimeSerializer(DateTimeSerializationOptions.LocalInstance));

更新:


#2 又变了:

BsonSerializer.RegisterSerializer(typeof(DateTime), DateTimeSerializer.LocalInstance);

关于mongodb - 如何正确保存日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8063323/

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