1. <tfoot id='Cz8RV'></tfoot>

      <small id='Cz8RV'></small><noframes id='Cz8RV'>

    2. <legend id='Cz8RV'><style id='Cz8RV'><dir id='Cz8RV'><q id='Cz8RV'></q></dir></style></legend>

      <i id='Cz8RV'><tr id='Cz8RV'><dt id='Cz8RV'><q id='Cz8RV'><span id='Cz8RV'><b id='Cz8RV'><form id='Cz8RV'><ins id='Cz8RV'></ins><ul id='Cz8RV'></ul><sub id='Cz8RV'></sub></form><legend id='Cz8RV'></legend><bdo id='Cz8RV'><pre id='Cz8RV'><center id='Cz8RV'></center></pre></bdo></b><th id='Cz8RV'></th></span></q></dt></tr></i><div id='Cz8RV'><tfoot id='Cz8RV'></tfoot><dl id='Cz8RV'><fieldset id='Cz8RV'></fieldset></dl></div>

      • <bdo id='Cz8RV'></bdo><ul id='Cz8RV'></ul>
      1. 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法

        时间:2023-12-10

            <tbody id='1M3Wl'></tbody>

              <small id='1M3Wl'></small><noframes id='1M3Wl'>

              <i id='1M3Wl'><tr id='1M3Wl'><dt id='1M3Wl'><q id='1M3Wl'><span id='1M3Wl'><b id='1M3Wl'><form id='1M3Wl'><ins id='1M3Wl'></ins><ul id='1M3Wl'></ul><sub id='1M3Wl'></sub></form><legend id='1M3Wl'></legend><bdo id='1M3Wl'><pre id='1M3Wl'><center id='1M3Wl'></center></pre></bdo></b><th id='1M3Wl'></th></span></q></dt></tr></i><div id='1M3Wl'><tfoot id='1M3Wl'></tfoot><dl id='1M3Wl'><fieldset id='1M3Wl'></fieldset></dl></div>
              • <bdo id='1M3Wl'></bdo><ul id='1M3Wl'></ul>
                <tfoot id='1M3Wl'></tfoot>

                1. <legend id='1M3Wl'><style id='1M3Wl'><dir id='1M3Wl'><q id='1M3Wl'></q></dir></style></legend>

                  下面我来详细讲解“解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法”的完整攻略。

                  问题概述

                  在使用Asp.net Mvc框架返回JsonResult时,我们经常会遇到DateTime类型的数据无法正确序列化的问题。原因在于Json序列化默认使用了UTC时间,而DateTime类型的数据默认是本机时间。为了解决这个问题,我们需要对DateTime类型数据进行处理。

                  解决方法

                  方法一:修改Json序列化配置

                  可以通过修改Json序列化配置来改变序列化的方式。例如,在Global.asax.cs文件的Application_Start方法中添加以下代码:

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

                  其中,DateTimeZoneHandling属性指定了时间的处理方式。将其设置为Local可以让序列化使用本机时间。

                  方法二:使用自定义的日期格式

                  可以使用自定义的日期格式来规避本机时间和UTC时间之间的差异。例如,在控制器中添加以下代码来设置日期格式:

                  var jsonResult = new JsonResult()
                  {
                      Data = myData,
                      JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                      ContentEncoding = Encoding.UTF8,
                      ContentType = "application/json"
                  };
                  
                  jsonResult.Data = JsonConvert.SerializeObject(myData, new JsonSerializerSettings
                  {
                      DateFormatHandling = DateFormatHandling.IsoDateFormat,
                      DateTimeZoneHandling = DateTimeZoneHandling.Local
                  });
                  

                  其中,DateFormatHandling属性指定了日期格式的处理方式。将其设置为IsoDateFormat可以让序列化使用标准的ISO日期格式。

                  示例说明

                  下面以两个示例来演示如何解决DateTime类型数据格式问题。

                  示例一:使用修改Json序列化配置方法

                  public class MyController : Controller
                  {
                      public ActionResult GetMyData()
                      {
                          MyData myData = new MyData()
                          {
                              Id = 1,
                              Name = "My name",
                              CreateTime = DateTime.Now
                          };
                  
                          return Json(myData, JsonRequestBehavior.AllowGet);
                      }
                  }
                  
                  public class MyData
                  {
                      public int Id { get; set; }
                      public string Name { get; set; }
                      public DateTime CreateTime { get; set; }
                  }
                  

                  在Global.asax.cs文件的Application_Start方法中添加以下代码:

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

                  使用Postman调用GetMyData方法,可以看到CreateTime的值已经转换为本地时间。

                  示例二:使用自定义的日期格式方法

                  public class MyController : Controller
                  {
                      public ActionResult GetMyData()
                      {
                          MyData myData = new MyData()
                          {
                              Id = 1,
                              Name = "My name",
                              CreateTime = DateTime.Now
                          };
                  
                          var jsonResult = new JsonResult()
                          {
                              Data = myData,
                              JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                              ContentEncoding = Encoding.UTF8,
                              ContentType = "application/json"
                          };
                  
                          jsonResult.Data = JsonConvert.SerializeObject(myData, new JsonSerializerSettings
                          {
                              DateFormatHandling = DateFormatHandling.IsoDateFormat,
                              DateTimeZoneHandling = DateTimeZoneHandling.Local
                          });
                  
                          return jsonResult;
                      }
                  }
                  
                  public class MyData
                  {
                      public int Id { get; set; }
                      public string Name { get; set; }
                      public DateTime CreateTime { get; set; }
                  }
                  

                  使用Postman调用GetMyData方法,可以看到CreateTime的值已经使用了标准的ISO日期格式。

                  上一篇:Spring boot @RequestBody数据传递过程详解 下一篇:JavaScript处理解析JSON数据过程详解

                  相关文章

                  <small id='M6JC0'></small><noframes id='M6JC0'>

                    <bdo id='M6JC0'></bdo><ul id='M6JC0'></ul>

                  1. <tfoot id='M6JC0'></tfoot>

                      <i id='M6JC0'><tr id='M6JC0'><dt id='M6JC0'><q id='M6JC0'><span id='M6JC0'><b id='M6JC0'><form id='M6JC0'><ins id='M6JC0'></ins><ul id='M6JC0'></ul><sub id='M6JC0'></sub></form><legend id='M6JC0'></legend><bdo id='M6JC0'><pre id='M6JC0'><center id='M6JC0'></center></pre></bdo></b><th id='M6JC0'></th></span></q></dt></tr></i><div id='M6JC0'><tfoot id='M6JC0'></tfoot><dl id='M6JC0'><fieldset id='M6JC0'></fieldset></dl></div>
                      <legend id='M6JC0'><style id='M6JC0'><dir id='M6JC0'><q id='M6JC0'></q></dir></style></legend>