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

本文关键字:quot ss sss JSON 输出 mm 何强制 ISO YYYY-MM-DDThh 格式 | 更新日期: 2023-09-27 18:07:57

我有一个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" ?

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

添加一行到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",最大输出6dp。我猜小写的f,它似乎工作。

注意K是时区(或Z为UTC),它也显示空白未知的日期类型,这就是为什么你没有任何显示在那里。