Web API 2.0 - 使用JavaScriptConverter自定义日期格式

时间:2016-03-27 21:12:33

标签: c# json datetime asp.net-web-api asp.net-web-api2

我需要每个DateTime对象都采用" yyyy-MM-dd"的基本格式。

当我使用JSON.Net执行此操作时,通过将以下内容添加到WebApiConfig.cs中它可以正常工作:

    config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
        new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd" });

但是,我已经重新设计了控制器以返回IHttpActionResultreturn Json(objectToSerialize)。现在日期格式是错误的,因为我认为这是因为现在使用的是JavaScriptConverter。如果我错了,请告诉我。

如何将序列化对象中的每个DateTime转换为我需要的格式?

默认情况下,它们现在显示为" 1927-01-29T00:00:00" ......我需要" 1927-01-29"。

我看到一些看似完全矫枉过正的疯狂黑客(例如this one)。

有干净的方法吗?

1 个答案:

答案 0 :(得分:3)

嗯,你仍然可以使用IHttpActionResult,但你返回的内容不正确。在你的情况下,我相信你可以通过以下方式解决它:

return Ok(objectToSerialize);

默认情况下,它会在WebApi中保留JSON.NET,您应该保留日期格式