在Dot Net Core 2 WebApi中使用Json序列化自动将C DateTime转换为JavaScript日期

在Dot Net Core 2 WebApi中使用Json序列化自动将C DateTime转换为JavaScript日期,javascript,json.net,asp.net-core-webapi,asp.net-core-2.0,Javascript,Json.net,Asp.net Core Webapi,Asp.net Core 2.0,从Dot Net Core 2.0 WebApi控制器调用返回结果时,是否可以将C DateTime字段自动转换为JavaScript日期 此时,当从服务器端调用返回DateTime值时,其返回格式为:2013-02-01T00:00:00 我认为可以设置JsonSerializer选项来返回已经转换为JavaScript日期的值,而无需通过次要解析器(如矩)对其进行解析 有人知道怎么做吗?您应该在ConfigureService函数中的startup.cs类中添加以下行: services

从Dot Net Core 2.0 WebApi控制器调用返回结果时,是否可以将C DateTime字段自动转换为JavaScript日期

此时,当从服务器端调用返回DateTime值时,其返回格式为:2013-02-01T00:00:00

我认为可以设置JsonSerializer选项来返回已经转换为JavaScript日期的值,而无需通过次要解析器(如矩)对其进行解析


有人知道怎么做吗?

您应该在ConfigureService函数中的startup.cs类中添加以下行:

services
            .AddMvc()
            .AddJsonOptions(x => x.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat);

然后,您可以在序列化数据的同时以json格式获取日期。

您看过使用json.parse的可选恢复器参数吗?您的问题不清楚,因为您说您从WebAPI返回结果,但您没有说您在客户端对这些结果做了什么-这完全是您的问题所在。换句话说,不管是哪个平台生成的字符串,它也可以是Ruby或Python。如何在客户端解释它只是客户端的问题。例如,如果我在客户端数据网格中使用它,那么我希望它可以排序为日期。最好的方法是使用JavaScript日期对象来表示date.nooo。。不要那样做!这种格式应该会死得很惨然后,您应该以所需的字符串格式从数据库中获取数据。例如,如果您想在'DD/MM/YYYY hh:MM:ss'中获取日期,那么您应该返回类似date.toString/MM/YYYY hh:MM:ss的日期。仅当您要将其直接显示给用户,并且考虑到用户的区域性信息时。否则,请坚持现在默认的标准ISO 8601格式。OP请求的是JavaScript中的日期对象,而不是用户可呈现的本地化字符串。最终,API只能返回一个字符串。其他任何内容都需要解析。它是标准字符串格式。我不相信仅仅因为API返回字符串就意味着我们不能在边界处使用序列化程序将其转换为JavaScript日期对象。当我们向Web API控制器提交一个日期时,它会以另一种方式完成。我真的希望它是自动的,避免在javascript中映射每个返回数组的日期字段,我现在使用的是矩。数据当前返回,我对数据调用json以将其转换为内存中的json对象。当然,也就是说,当前的http服务即将退出—将被HttpClient服务取代,可在此处找到:。