Serializer序列化/反序列化DateTime少了8小时问题解决

1.举例子

JavascriptSerializer serializer = new JavascriptSerializer();
DateTime now = DateTime.Parse("2016-07-21 00:00:00");
Console.WriteLine(serializer.Deserialize<DateTime>(serializer.Serialize(now)));
//结果是:2015-07-20 16:00:00

2.为什么?

JavascriptSerializer序列化时把时间转成了UTC时间,而反序列化时没转回本地时间。

本地时间和UTC时间相差为8小时,这就导致了上边的问题。

3.怎么办?

(1)调用的时候,使用ToLocalTime方法,转换成本地时间。

(2)使用其他JSON序列化方法

链接:http://www.111cn.net/wy/js-ajax/77086.htm

原文地址:https://www.cnblogs.com/talentzemin/p/5691521.html