似乎Asp.Net MVC Web API使用一个默认的序列化格式,其中包含超过三位数的分数。
当使用AngularJS格式化一秒的分数超过三位数的日期时,日期无法正确显示
以下是我设置序列化的方法:
config.Formatters.Remove(config.Formatters.XmlFormatter);
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
json.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
目前日期显示为:
yyyy-MM-ddTHH:mm:ss.SSSSZ
有没有办法可以将日期默认序列化格式配置为只显示:
yyyy-MM-ddTHH:mm:ss
答案 0 :(得分:2)
您可以像这样创建自定义转换器。
public class MyDateTimeConverter : DateTimeConverterBase
{
public override void WriteJson(JsonWriter writer,
object value,
JsonSerializer serializer)
{
writer.WriteValue(((DateTime)value)
.ToString("yyyy-MM-ddTHH:mm:ss"));
}
}
然后,将其配置为使用JSON.NET。
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.Converters.Add(new MyDateTimeConverter());
答案 1 :(得分:1)
虽然我自己没试过,但请查看JSON Dates are Different in ASP.NET MVC and Web API。
博客条目引用了KnockoutJS
中使用的日期值,但我希望这会为您提供在AngularJS
中使用它的主角。