我已经全局显式地配置了我的MVC4应用程序,使用JSON.NET序列化器。我知道在序列化日期时可以选择使用ISO标准日期或旧的Microsoft日期格式。
但是如何输出自己的自定义dateTime格式字符串,例如:"dd/MM/yyyy hh:mm"?
当将Json.NET作为默认序列化器插入MVC3时,我可以这样做,但似乎无法在MVC4中实现。
到目前为止,在application_start中我已经做了以下操作:
var settings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;
JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings()
{
Formatting = Formatting.Indented,
DateTimeZoneHandling = DateTimeZoneHandling.Utc,
};
jSettings.Converters.Add(new MyDateTimeConvertor() );
settings = jSettings;
我尝试实现的自定义转换器如下:
public class MyDateTimeConvertor : DateTimeConverterBase
{
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return DateTime.Parse(reader.Value.ToString());
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((DateTime)value).ToString("dd/MM/yyyy hh:mm"));
}
}
任何帮助都将不胜感激 :)