如何在JSON输出上强制ISO格式"YYYY-MM-DDThh:mm:ss.sss"?

Gia*_*ini 5 c# datetime json date-format asp.net-web-api2

我有一个ASP .NET WebApi2 api,它以JSON格式返回一些时间戳.时间戳有毫秒级的分辨率.

通常我得到这种格式的时间戳,这很好 "YYYY-MM-DDThh:mm:ss.sss"

不幸的是,如果时间戳碰巧用整秒编码日期,则输出格式为"YYYY-MM-DDThh:mm:ss"(注意缺少的.sss")

如何"YYYY-MM-DDThh:mm:ss.sss"在JSON输出上一直强制使用ISO格式?

wes*_*ton 4

将此行添加到WebApiConfig.Register

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
       // existing stuff

       config.Formatters
            .JsonFormatter
            .SerializerSettings
            .DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffK";
    }
}
Run Code Online (Sandbox Code Playgroud)

默认格式"yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"最多为 6 dp。我猜是小写f,它似乎有效。

请注意,K时区(或 Z 表示 UTC)对于未知日期类型也显示为空白,这就是为什么您没有显示任何内容的原因。