gpt4 book ai didi

c# - 本地日期时间存储在 MongoDb 中,同时从 C# 发送 UTC 日期时间

转载 作者:行者123 更新时间:2023-12-03 09:07:48 26 4
gpt4 key购买 nike

我将 UTC 日期时间从我的 C# winform 应用程序发送到 MongoDb 3.4.5,但它在 MongoDb 中存储为本地时间。当我从 Mongo 获取数据时,它返回 UTC 时间。

我的问题是,尽管从 UI 发送 UTC 日期时间,但为什么日期时间存储在 MongoDb 本地。我希望 UTC 时间存储在 MongoDb 中。下面是代码片段:

public void InsertInMongo()
{
var client = new MongoClient("mongodb://localhost:27017");
var db = client.GetDatabase("Test");
var col = db.GetCollection<TestData>("TestData");

var data = new TestData(123,DateTime.UtcNow);
col.InsertOne(data);

var fromMongo = col.Find(Builders<TestData>.Filter.Empty).ToList();

}
}

class TestData
{
public TestData(int num, DateTime date)
{
TestNumber = num;
TestDate = date;
}
[BsonId]
[BsonElement("_id")]
[BsonRepresentation(BsonType.ObjectId)]
[BsonIgnoreIfDefault]
public string Id { get; private set; }
public int TestNumber { get; set; }

public DateTime TestDate { get; set; }
}
}

Stored Data in MongoDb

我该如何解决这个问题?我是 Mongo 的 C# 新手。

最佳答案

MongoDB 提供了一个自动执行此操作的属性。

[BsonDateTimeOptions(Kind = DateTimeKind.Local)]

因此您只需在 TestDate 属性上添加此属性

关于c# - 本地日期时间存储在 MongoDb 中,同时从 C# 发送 UTC 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45654147/

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