2011-06-29 140 views
3

我正在编写一个Entity Framework 4.1应用程序。在这个应用程序,我有一个History类定义如下:SQLite.Net UTC日期时间

public class History 
{ 
    public Guid Id { get; set; } 
    public DateTime HistoryDate { get; set; } 
} 

然而,当我看到在数据库中,它似乎存储日期为本地时间。我的公司不存在于一个时区,这会导致问题吗?有什么我需要做的将日期和时间存储为UTC,或者它已经存储为SQLite中的UTC,而我刚刚在当地时间看到结果。这里是我看到的一些示例输出:

select id, historydate from history limit 1; 
000846d3-f91d-47bb-9963-baf9530e0229|2004-10-28 16:57:00 

在此先感谢!

回答

5

储存在UTC日期,并访问值时使用ToLocalTime有它在本地时间: http://msdn.microsoft.com/en-us/library/system.datetime.tolocaltime.aspx

+1

这太糟糕了。我希望可能有一些方法或技巧将它作为UTC存储在数据库中,然后让System.Data.SQLite选择该标志。相反,我希望通过提供一个世界性的时间,它会这样标记它。好吧。感谢您的输入! – Terry

+0

@Terry截至2015年3月,SQLite有一个强制日期为一个TZ或另一个TZ的标志 – Plutonix