我有以下对象:
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服务器。
可能导致差异的原因是什么?
谢谢!
答案 0 :(得分:7)
挖了一下后发现这个帖子: http://alexmg.com/post/2011/09/30/DateTime-precision-with-MongoDB-and-the-C-Driver.aspx
我需要使用[BsonDateTimeOptions(Kind = DateTimeKind.Local)]属性标记DateTime属性
答案 1 :(得分:0)
我曾经遇到过这个问题。确保还将DateTimeKind参数指定为DateTimeKind.Utc
希望有所帮助。