4

我有以下对象:

public class QueueItem
{
    public long _id { get; set; }
    public SiteMapRequestState State { get; set; }
    public int WorkerId { get; set; }
    public DateTime QueuedTime { get; set; }
    public DateTime StartWorkTime { get; set; }
}

当我将对象保存到 mongo 时,日期显示正确(DateTime 字段包含我插入的正确日期)。但是,当我拉这个对象时,我会得到不同的时间(-3 小时)。

例如:我使用 StartWorkTime = 6/26/2012 10:00:00 AM保存对象,然后从集合 StartWorkTime 获取对象时等于 6/26/2012 7:00:00 AM。这使得处理时间的计算错误。

我正在使用最新的 c# 驱动程序 (1.4.2.4500) 并在同一台机器上运行代码和 mongo 服务器。

什么会导致差异?

谢谢!

4

2 回答 2

7

经过一番挖掘,我发现了这篇文章: http ://alexmg.com/post/2011/09/30/DateTime-precision-with-MongoDB-and-the-C-Driver.aspx

http://www.mongodb.org/display/DOCS/CSharp+Driver+Serialization+Tutorial#CSharpDriverSerializationTutorial-DateTimeSerializationOptions

我需要用 [BsonDateTimeOptions(Kind = DateTimeKind.Local)] 属性标记 DateTime 属性

于 2012-06-26T08:00:26.010 回答
0

我曾经遇到过这个问题。请务必将 DateTimeKind 参数指定为 DateTimeKind.Utc

希望有帮助。

于 2014-01-08T17:21:46.570 回答