Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mongo DB未正确存储日期时间_C#_Mongodb_Datetime_Mongodb .net Driver - Fatal编程技术网

C# Mongo DB未正确存储日期时间

C# Mongo DB未正确存储日期时间,c#,mongodb,datetime,mongodb-.net-driver,C#,Mongodb,Datetime,Mongodb .net Driver,代码是不言自明的。当我从数据库中检索对象时,它的日期时间与我插入的日期时间不同。我想知道如何修理它 class MyClass { public ObjectId _id; public DateTime date; } MongoClient client = new MongoClient("mongodb://localhost"); MongoServer server = client.GetServer(); MyClass tmp = new MyClass()

代码是不言自明的。当我从数据库中检索对象时,它的日期时间与我插入的日期时间不同。我想知道如何修理它

class MyClass
{
    public ObjectId _id;
    public DateTime date;
}

MongoClient client = new MongoClient("mongodb://localhost");
MongoServer server = client.GetServer();

MyClass tmp = new MyClass();
tmp.date = DateTime.Now;

Console.WriteLine(tmp.date); // 11.7. 21:38:18

var coll = server.GetDatabase("test").GetCollection("test");
coll.Insert(tmp);

tmp = server.GetDatabase("test").GetCollection<MyClass>("test").FindOne();

Console.WriteLine(tmp.date); // 11.7. 19:34:46

你在CET时区吗?似乎日期在CEST中被转换为UTCIm,但即使它是由它引起的,我仍然不知道如何修复它。谷歌应该很容易做到这一点。你是否尝试过设置,看看这是否有区别?我们发现Mongo将时间存储为UTC,即使我们将其保存为ET。这不是一件坏事。存储本地时间通常不是一个好主意。一种选择是只在DB中使用UTC。如果您需要将其转换为UI中的其他时间,那么继续,但数据库中的UTC是一件好事。