C# 如何在javascript中从实体框架中获取正确的日期

C# 如何在javascript中从实体框架中获取正确的日期,c#,datetime,angular,timezone,C#,Datetime,Angular,Timezone,我不知道如何正确地将日期时间从实体框架(在后端)转换为Javascript(在字体端) 在我的C#项目中,日期是通过实体框架查询SQL Server数据库创建的,并且是本地格式,带有datetime.Kind=unspecified 我使用websocket服务发送日期,其中日期以json结构的方式序列化:2016/22/09T12:04:00 在我使用Angular2的web端,使用时区解析日期 因此,我的日期2016/22/09T12:04:00被转换为2016/22/09T12:04:00

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

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

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

在我使用Angular2的web端,使用时区解析日期

因此,我的日期
2016/22/09T12:04:00
被转换为
2016/22/09T12:04:00+02:00Z
=
2016/22/09T14:04:00


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

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

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


如果你坚持你的旧类型,至少你可以考虑在UTC中保留日期而不是本地时间。由于白昼时间的切换,您可能会得到一些惊喜。

非常好的回答,谢谢!我将数据库迁移到Sql Server中使用datetimeoffset。让DateTimeOffset向web api响应中的序列化datetime添加正确的时区。