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

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

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

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

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

将此行添加到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"; } } 

默认格式为"yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK" ,最多可提供6 dp。 我猜测它是小写的f ,它似乎工作。

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