如何让Newtonsoft.Json允许Json使用时区信息进行DateTime转换



我有一个管理事件日期的MVC3项目。问题是当我写JsonResult 时

   //...
   var StartDate=new DateTime(1999,12,10,2,3,40);
   return Json(StartDate,JsonBehavior.AllowGet);

响应的正文格式类似于

"StartDate":"/Date(1374962232247)/"

这个结果是根据服务器时区给我最后一天的日期,而不是返回类似的内容

 "StartDate":"/Date(1374962232247-0600)/"

其中包含一些服务器时区信息!我不能关注SHanselman的帖子(喜欢它,但它似乎没有被挪用)!那么,有人能告诉我如何让Newtonsoft.Json.5.0.6包转换Json DateTime和时区信息吗?亲切问候

我认为这个链接应该可以帮助您使用Newtonsoft Json Serializer设置MVC3项目。对于ISO日期时间格式化程序,您应该更改JsonNetResult构造函数中的以下行。

public JsonNetResult()
{
    Formatting = Formatting.None;
    var settings = new JsonSerializerSettings();
    settings.Converters.Add(new IsoDateTimeConverter());
    SerializerSettings = settings;
    JsonRequestBehavior = JsonRequestBehavior.DenyGet;
}

您必须从BaseController派生控制器才能使用自定义结果。

希望这能有所帮助。

最新更新