Как сериализовать даты с помощью JavaScriptSerializer - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь использовать JavaScriptSerializer для сохранения / получения даты. Тем не менее, я не получаю обратно то же значение.

Вот тестовый код

var serializer = new JavaScriptSerializer();
var date = new DateTime(1997, 1, 27, 0, 0, 0, DateTimeKind.Local);
var obj = new Dictionary<string, object> { { "theDate", date } };
var json = serializer.Serialize(obj);
var obj2 = serializer.DeserializeObject(json) as Dictionary<string, object>;
var date2 = (DateTime)obj2["theDate"];
var result = date == date2 ? "success" : "failure";

Дата, которую я получаю, - DateTimeKind.Utc вместо DateTimeKind.Local, поэтому результатом является «сбой». Что я делаю не так?

Спасибо

1 Ответ

0 голосов
/ 03 июля 2018

«JavaScriptSerializer» Нельзя доверять чему-либо столь сложному, как свидание. Я рекомендую выбрать ваш любимый формат даты и сохранить дату в виде строки. Или, для большей точности, преобразовать его в эпоху и сохранить это число:)

...