none
WebApi 中接收JavascriptSerializer 序列化的日期格式json后,自动进行反序列化得到的日期差八个小时 RRS feed

  • 问题

  • WebApi 中接收JavascriptSerializer 序列化的日期格式json后,自动进行反序列化得到的日期差八个小时。

    使用JavascriptSerializer 对日期进行序列化成Json,格式大概是//date(423423)/的类似样子,然后传给webapi,webapi的apicontroller直接当作日期格式接收(内部ASP.NET自动帮助序列化了),但是,得到的数据差了八个小时,不是当地时间日期,只以通过toLocalTime()转换。但是,好多类型里面有日期类型的属性,没办法一个个进行toLocalTime()转换。webapi有没有提供什么配置的方式或者面向切面的方式进行修改,让asp.net自动将json转为datetime时就转为当地日期。

    急等~~~mvpper大神们,路人王们,给支个招~~~

    2015年12月31日 1:33

答案

  • 找到解决办法了,webapi使用的不是javascriptSerializer进行序列化处理的,它使用的是newtonsoft。在global里面写入下面的代码:

                var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
                json.Indent = false;
                json.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local;

    配置一下就可以了。

    2015年12月31日 1:38