1. 下载安装包:Microsoft.AspNetCore.Mvc.NewtonsoftJs
封装一个datetime类
public class CustomDateTimeConverter : IsoDateTimeConverter
{
public CustomDateTimeConverter(string format)
{
DateTimeFormat = format;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
if (value is DateTime dateTime)
{
writer.WriteValue(dateTime.ToString(DateTimeFormat));
}
else if (value is null)
{
writer.WriteNull();
}
else
{
writer.WriteNull();
}
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.Null)
{
return null;
}
if (reader.TokenType == JsonToken.String)
{
if (DateTime.TryParse(reader.Value.ToString(), out DateTime result))
{
return result;
}
return null;
}
return reader.Value;
}
}
2.在program.cs里面配置
builder.Services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc;
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
options.SerializerSettings.Converters.Add(new CustomDateTimeConverter("yyyy-MM-dd HH:mm:ss"));
options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore; // 忽略 null 值
});
这样传到vue的时间格式就不带T了