【问题标题】:How do i stop Entity Framework converting Json UTC datetime when i want to store UTC datetime当我想存储 UTC 日期时间时,如何停止实体框架转换 Json UTC 日期时间
【发布时间】:2014-09-19 21:09:55
【问题描述】:

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

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

"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?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      感谢 Pawel 的提示。为了帮助其他人解决这个问题,请参阅下面的代码:

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

      【讨论】:

        猜你喜欢
        • 2011-06-06
        • 2011-07-11
        • 2014-01-05
        • 2014-01-24
        • 2019-11-26
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 2012-10-07
        相关资源
        最近更新 更多