Ошибка "Неверная дата" при получении значения DateTime из SQL Server Compact
Я столкнулся со следующей проблемой в простом проекте с Breeze + Knockout + WebAPI + SQL Server Compact:
когда я добавлю Breeze
сущность (с DateTime
ko.observable
) и делать Manager.SaveChanges()
строка правильно сохранена в SQL Server Compact, а DateTime
столбец в этом формате: 23/12/2012 19.56.33
,
Когда я впоследствии делаю Breeze
запрос, я получаю строку назад, но DateTime
значение не признается:
Недействительная дата
date
Поле является наблюдаемым, поэтому я не могу отладить значение / формат, это метод!
Перед SaveChanges
это в этом формате: Sun Dec 23 21:32:05 UTC+0100 2012
После SaveChanges
Я нахожу его в таблице SQL Server Compact в следующем формате: 23/12/2012 20.32.05
возможно Breeze
ожидает это также в UTC..?
Любая помощь очень ценится!
Спасибо
РЕДАКТИРОВАТЬ:
вот json, возвращенный из WebApi BreezeController:
[
{
"$id":"1",
"$type":"MvcTask.Models.Task, MvcTask",
"id":110,
"text":"aaa",
"done":false,
"created":"2012-12-23T19.56.33.950"
}
]
2 ответа
С более ранними версиями breeze возникла проблема, но это следует исправить в более поздних версиях. Можете ли вы попробовать текущую версию v.80.1?
Ваша проблема связана с тем, что форматер даты по умолчанию не дает вам именно то, что вы ищете. Похоже, вы получаете данные в формате UTC, а ваш код этого не ожидает.
Посмотрите на ASP.NET Web API Формат даты в JSON не сериализуется успешно.
У них похожая проблема, но показано, как настроить сериализатор. Я сделал эту технику в прошлом, и это решило мои проблемы