当我想存储UTC日期时,如何停止实体框架转换Json UTC日期时间

时间:2014-09-19 21:09:55

标签: json vb.net entity-framework datetime utc

在这个问题上我的头撞墙。

我收到一个用json生成的Web服务的文本字符串,例如:

"2014-09-19T17:00:00.000Z"

当我在实体框架中将其分配给我的数据库时,它将其更改为20:00而不是17:00。所以我指定它是UTC日期

DateTime.SpecifyKind("2014-09-19T17:00:00.000Z", DateTimeKind.UTC)

但这也会在20:00返回!我可以通过删除Z来解决这个问题,但这是一个肮脏的解决方法,可能是接收时区而不是Z.有没有办法设置告诉vb忽略时区并将其保存为17:00?

2 个答案:

答案 0 :(得分:2)

如上所述here EF将始终读取日期时间值,就好像它是未指定类型的,因为DateTime不存储时区。考虑使用存储时区的DateTimeOffset。

答案 1 :(得分:1)

感谢Pawel提示。要帮助其他人解决此问题,请参阅以下代码:

New DateTimeOffset("2014-09-19T17:00:00.000Z").ToUniversalTime