我试图理解为什么当我以JSON格式查看时,我的MSSQL服务器中存储的日期会被改变一小时。
这是存储在MSSQL中的日期时间
2015-08-12 00:00:00.000
这是Visual Studio中的调试模式,显示日期"出现"从数据库中正确检索。
{8/12/2015 12:00:00 AM}
这是JSON输出 - 日期提前一小时!我看到json时区是-6,数据库时区似乎没有,但我的web api配置中没有任何特殊设置。我真的不明白这里发生了什么。感谢任何帮助。
" 2015-08-11T23:00:00-06:00",
编辑:我的图片没有显示,所以我编辑了以文本格式显示日期 - 希望这是好的。
答案 0 :(得分:0)
当转移到OData V4(从早期版本)时,我们遇到的第一个“hickups”之一是V4 不支持'DateTime'而是'DateTimeOffset'。在.Net术语中,我们将从“假定为运行它的服务器的语言环境时区的日期”转移到“DateTimeOffset”,该日期明确包含时区信息本身。
OWin将根据您的主题文化信息发出DateTimeOffset。然后,您的解决方案将确保在“DateTime”和“DateTimeOffset”(分别为DB / EF和OWin)之间进行转换时不依赖于本地线程的区域设置,但强制将其视为UTC。