MongoDB C# driver and DateTime field(MongoDB C#驱动程序和日期时间字段)
本文介绍了MongoDB C#驱动程序和日期时间字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用C#驱动程序将一个文档插入到MongoDB集合中,其中一个字段类型是DateTime当我调试应用程序时,我在传递给Mongo的"FrameTimeStamp"字段中看到了服务器时间,这是我的代码:
FrameDocument frameDoc = new FrameDocument();
frameDoc.Frame = imageBA;
frameDoc.EventCodeId = 1;
frameDoc.SesionId = 1;
frameDoc.FrameTimeStamp = DateTime.Now;
frameDoc.ServerUserId = (int)toMongoDt.Rows[0]["ServerUserId"];
frameDoc.TraderId = (int)toMongoDt.Rows[0]["TraderId"];
frameDoc.ActivePick = (int)toMongoDt.Rows[0]["ActivePick"];
frameDoc.TraderName = (string)toMongoDt.Rows[0]["TraderName"];
frameDoc.ServerUserName = (string)toMongoDt.Rows[0]["ServerUserName"];
var mongoCon = "mongodb://127.0.0.1";
MongoClient client = new MongoClient(mongoCon);
var db = client.GetDatabase("Video");
var frameCollection = db.GetCollection<FrameDocument>("Frame");
frameCollection.InsertOne(frameDoc);
在外壳中,当我读取数据时,我看到它的格式如下:
2016-08-14T06:10:33.295Z且时间不是服务器时间,而是UTC,如何强制mongo在传递时写入日期时间?
推荐答案
根据CSHARP-185
MongoDB将所有DateTimes存储在UTC中。您提供的任何本地时间都是 存储在数据库中时转换为UTC。推荐的方法 总是在存储之前自己将日期时间值转换为UTC 他们在数据库中,这样你就完全控制了。你也可以 告诉C#驱动程序您希望在本地时间工作,如下所示:
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime Date
{ get; set; }
这篇关于MongoDB C#驱动程序和日期时间字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:MongoDB C#驱动程序和日期时间字段
猜你喜欢
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 输入按键事件处理程序 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01