【问题标题】:How to get correct date from Entity Framework in javascript如何从 javascript 中的实体框架中获取正确的日期
【发布时间】:2016-09-29 10:11:25
【问题描述】:

我看不到如何正确地将日期时间从实体框架(在后端)转换为 Javascript(在字体端)。

在我的 C# 项目中,日期是从针对 SQL Server 数据库的实体框架查询创建的,并且是本地格式,带有 datetime.Kind = unspecified

我使用 websocket 服务发送我的日期,其中日期在 json 结构中以这种方式序列化:2016/22/09T12:04:00

在我使用 Angular2 的网页端,日期是用时区解析的。

所以我的日期2016/22/09T12:04:00 转换为2016/22/09T12:04:00+02:00Z = 2016/22/09T14:04:00

处理该问题的最佳方法是什么?在服务器端?在客户端?

【问题讨论】:

    标签: c# datetime angular timezone


    【解决方案1】:

    将您的DateTime 值转换为DateTimeOffset(.Net 类型)并将其返回给客户端,它会正确处理它们。

    如果您可以更改您的 sql 数据库,最好将日期保留为 datetimeoffset(sql 类型),因为它以最精确的格式表示日期。

    如果您坚持使用旧类型,至少您可以考虑将日期保留为 UTC 而不是本地时间。由于日光时间切换,您可能会得到一些惊喜。

    【讨论】:

    • 完美回复,谢谢!我迁移了我的数据库以在 Sql Server 中使用 datetimeoffset。让 DateTimeOffset 将正确的时区添加到 Web api 响应中的序列化日期时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 2018-04-25
    • 2016-09-14
    • 2015-08-15
    相关资源
    最近更新 更多