2016-09-29 2 views
1

Я не вижу, как правильно преобразовать дату с Entity Framework (в конце) в Javascript (на конец шрифта).Как получить правильную дату от Entity Framework в javascript

I мой проект C#, даты создаются из запросов Entity Framework к базе данных 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.

Каков наилучший способ справиться с этой проблемой? На стороне сервера? На стороне клиента?

ответ

2

Преобразуйте значения DateTime в DateTimeOffset (.Net-тип) и верните его клиенту, он будет обрабатывать их правильно.

Если вы можете изменить свою базу данных sql, лучше сохранить даты в datetimeoffset (тип sql), поскольку они представляют даты в наиболее точном формате.

Если вы придерживаетесь старых типов, по крайней мере, вы можете рассмотреть вопрос о датах в UTC вместо местного времени. Вы можете получить некоторые сюрпризы из-за переключения дневного света.

+0

Отличный ответ, спасибо! Я перенесла свою базу данных, чтобы использовать datetimeoffset в Sql Server. Наличие DateTimeOffset добавляет правильный часовой пояс к сериализованному дате времени в ответе web api. – abreneliere

Смежные вопросы