2014-09-19 3 views
2

Отбивая голову от стены по этой проблеме.Как прекратить Entity Framework конвертировать Json UTC datetime, когда я хочу сохранить время UTC datetime

Я получаю текстовую строку на мой веб-сервис, который генерируется с помощью 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?

ответ

2

Как описано here EF всегда будет считывать значение времени даты, как если бы оно имело значение Unspecified, поскольку DateTime не хранит часовой пояс. Рассмотрим использование DateTimeOffset, который хранит часовой пояс.

1

Спасибо Pawel за подсказку. Чтобы помочь кому-либо еще с этой проблемой, см. Код ниже:

New DateTimeOffset("2014-09-19T17:00:00.000Z").ToUniversalTime 
Смежные вопросы