Json日期被序列化为错误的格式

时间:2016-08-18 09:25:23

标签: json serialization asp.net-core asp.net-core-mvc datetime-format

我有一个Web Api ASP.net CORE 1 MVC,c#。我通过我使用Angular(版本1)编写的客户端应用程序调用web api。

我有一个POST方法,其模型的日期为属性。

在我的开发环境中,当我发布到方法时,日期很好,模型有效,日期格式为我期望的“ dd / MM / yyyy ”。但是,当我将代码移动到我的测试服务器时,日期会通过“ MM / dd / yyyy ”。实际上,在测试服务器上,日期来自代码,如“0001-01-01T00:00:00”。

我可以从记录网络流量中看到从客户端应用程序发送的日期是正确的。当它到达方法时,它已被.net序列化为错误的格式,但模型状态无效。

以前有人有这个问题吗?它如此新颖,目前很难在CORE 1上获得良好的文档。

我在我的startup.cs中为我的web api尝试了这段代码:

   services.AddMvc().AddJsonOptions(opt =>
   {
      opt.SerializerSettings.DateFormatString = "dd/MM/yyyy";
   });

但它没有帮助。

1 个答案:

答案 0 :(得分:1)

通常为避免混淆本地化日期的序列化,建议以明确的格式进行序列化。在这种情况下,最好以国际化ISO格式格式化日期:

" YYYY-MM-DD",

请参阅:http://www.iso.org/iso/home/standards/iso8601.htm