Net Core 3.1 处理JSON返回的时间格式

在网上找了好多好多的帖子都是2.x的,代码放进去一直报错没法用,刚刚准备关机找到一个可以用的~特此记录一下。

直接把这一行放进去,这个时候DatetimeJsonConverter会报错,不要慌。接着下一步

  1.  
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  2.  
    {
  3.  
    services.AddControllers()
  4.  
    .AddJsonOptions(configure => {
  5.  
    configure.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter());
  6.  
    });
  7.  
    }

然后就是直接在这个startup类里下边再写一个方法

  1.  
    public class DatetimeJsonConverter : JsonConverter<DateTime>
  2.  
    {
  3.  
    public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
  4.  
    {
  5.  
    if (reader.TokenType == JsonTokenType.String)
  6.  
    {
  7.  
    if (DateTime.TryParse(reader.GetString(), out DateTime date))
  8.  
    return date;
  9.  
    }
  10.  
    return reader.GetDateTime();
  11.  
    }
  12.  
     
  13.  
    public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
  14.  
    {
  15.  
    writer.WriteStringValue(value.ToString("yyyy-MM-dd"));
  16.  
    }
  17.  
    }

这样就可以啦~ 我这里是不要具体时间的,所以直接写了yyyyMMdd  如果你们的系统需要具体时间 也可以随意修改哦~加上HHmmssfff就好了。

posted @ 2021-05-23 23:31  China Soft  阅读(281)  评论(0编辑  收藏  举报