Я работаю над приложением Silverlight с SQL Azure. Как я знаю, если DateTime
Kind не указан, Silverlight изменит его на Local
и сохранит в Azure как время UTC.
Все работает, как и ожидалось, но когда я получаю DateTime
данные из SQL Azure, его тип равен Unspecified
, и Silverlight не преобразует обратно в Local
время при отображении в пользовательском интерфейсе.
Например: я использую свое приложение в Риме (UTC + 1), я устанавливаю дату на 15:00, затем сохраняю в базу данных. В базе данных он будет сохранен как 14:00 (UTC).
Теперь я открываю страницу для редактирования этих данных, она запрашивает из базы данных как 14:00 с типом Unspecified
, а также показывает 14:00 на странице, что, очевидно, неверно.
Я попытался установить DateTime
вид в DomainService (перед возвратом этих данных клиенту), проверив, не указан ли его тип, и установите его в UTC. На этот раз, когда я изменяю DateTime на своей странице, его тип всегда UTC.
Похоже, что Silverlight преобразует дату только в том случае, если его вид равен Unspecified
, в противном случае он ничего не делает, он также не может преобразовать DateTime
из базы данных для правильного отображения, даже если DateTime
имеет Kind.
Я хочу знать, есть ли решения или обходные пути для этой проблемы?