如何配置web api的json序列化器将日期时间转换为ISO 8601格式?

时间:2018-01-14 08:54:07

标签: c# datetime asp.net-web-api datetime-format jsonserializer

我正在开发web api项目并且在我的 WebApiConfig 类中我添加了此配置以将datetime参数转换为ISO 8601格式:

  IsoDateTimeConverter converter = new IsoDateTimeConverter
        {
            //DateTimeStyles = DateTimeStyles.AdjustToUniversal,
            DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"
        };

     config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(converter);

但如果我从前端传递此值 2018-01-21T21:00:00.000Z ,则无法将其正确转换为 2018-01-22 00:00 :00.000

那么,我的配置有什么问题?

1 个答案:

答案 0 :(得分:0)

不要只使用IsoDateTimeConverter

var strDate = Convert.ToDateTime("2018-01-21T21:00:00.000Z").ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'", System.Globalization.CultureInfo.InvariantCulture);

当我测试你的字符串格式时,它会给你2018-01-22T00:30:00.000Z

但您可以更改格式; ike "yyyy'-'MM'-'dd' 'HH':'mm':'ss"