zam*_*6ak 7 c# sql-server datetime utc entity-framework-4
我有一个SQL Server数据库表,其中"ReceivedDate"列定义为"datetime",应该包含UTC日期......在我的C#代码中,我使用Entity Framework将表映射到一个类,该类具有相应的属性"ReceivedDate" "System.DateTime类型.
程序将日期从XML文件加载到DB中,稍后检查XML中的数据是否与DB中的数据相同...当XML和DB中的ReceivedDate的日期不匹配时,检查失败...例:
ReceivedDate from XML:
<ReceivedDate>2010-12-16T22:53:27.5912217Z</ReceivedDate>
ReceivedDate from DB:
2010-12-16 22:53:27.590
Run Code Online (Sandbox Code Playgroud)
经过一些调试后,我注意到DB中的日期没有将Kind属性设置为Utc,并且ticks的数量要少得多,因此日期比较失败......
我解决这个问题的方法是:
这是有效的,虽然我同意使用DateTimeOffset可能是更好的解决方案.
使用datetimeoffset存储在SQL Server上.
定义一个日期,该日期与具有时区感知且基于24小时制的一天的时间相结合.
另外,请考虑使用DateTimeOffset结构而不是DateTime.NET代码.
| 归档时间: |
|
| 查看次数: |
5703 次 |
| 最近记录: |