首页 > 解决方案 > 如何在 Newtonsoft 中设置 DateTime 格式字符串?

问题描述

我试图让 Newtonsoft 将字符串转换为 DateTime。这是字符串:

13/02/2019 05:13

尝试使用以下方法之一告诉 Newtonsoft 如何执行此操作:

var dateTimeConverter = new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy HH:mm" };
var converters = new List<JsonConverter>() { dateTimeConverter };
JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
    Converters = converters
};

或者

JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
    DateFormatString = "dd'/'MM'/'yyyy' 'HH':'mm"
};

当然,它会直接告诉我没关系,然后在它试图处理第十三个月的第二天时爆炸。

我需要这个在全球范围内工作。我如何让 Newtonsoft 做到这一点?

标签: c#json.net

解决方案


这是在 WebAPI 中,问题是我没有设置 WebAPI 使用的相同 Json.Net。

我通过将它放在global.asax.cs的 Application_Start 中来修复它:

var dateTimeConverter = new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy HH:mm" };
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(dateTimeConverter);

推荐阅读