Bir DateTime gömülü .net JavaScriptSerializer kullanarak serileştirir ve seri hale getirirseniz, UTC + öğesinde iseniz iki farklı tarih elde edersiniz!. Net DateTime Serialization Deserialization hata
Örnek sen serileştirilemezse tarihini alınca
JavaScriptSerializer myJson = new JavaScriptSerializer();
DateTime myDate = DateTime.Now; //suppose 2016-03-29 16:12:00
strSerialized = myJson.Serialize(myDate);
//DO WHAT YOU NEED WITH IT...
DateTime myDateDes = myJson.Deserialize<DateTime>(strSerialized);
Label1.Text=myDateDes.ToString();//it gives you 2016-03-29 14:12:00 ! WRONG! IT's in UTC+0 ! Has 2 HOURS less !!!
Yani, varsayılan olarak UTC + 0 size değer vereceğiz (ben şimdi gibi UTC + 2 içindedir varsayalım) ...! !
JavaScriptSerializer UTC DateTime issues'dan farklıdır, çünkü bu makalede farklı tarih verileri veri türlerinin serileştirilmesindeki fark açıklanmaktadır ve sorunu çözmeyen bir çözüm (.UtcDateTime) sağlar. Aslında .utcDateTime ile seri hale getirilmiş bir DateTime ile seri hale getirilmeye çalışılırken her zaman yanlış UTC + 0 tarihi verilir ...
Ben gues Bunun yerine bir DateTimeOffset nesnesini serileştirmek/serileştirmek istiyorsunuz. –
Benim durumumda DateTime'a ihtiyacım vardı ... DateTimeOffset bana 29/3/2016 17:00:23 +02: 00 gibi utc ofsetini veriyor ama deserialization'dan sonra utc + 0'a dönüyor (29/03/2016 15:00:23 +00: 00). Bu, arkasında ne olduğunu anlamak için yararlıdır, ama benim durumumda, tam olarak ne serileştirdiğimi tam olarak seri hale getirmeye ihtiyacım vardı, değiştirilmiş bir utc versiyonu değil ... – BitQuestions
Bu aslında .net'de bilinen bir hata olduğuna inanıyorum serileştirici. – Jeff