欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-09 21:36:09
...

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

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

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
services.AddControllers()
                .AddJsonOptions(configure => {
                    configure.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter());
                });
}

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

public class DatetimeJsonConverter : JsonConverter<DateTime>
        {
            public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
            {
                if (reader.TokenType == JsonTokenType.String)
                {
                    if (DateTime.TryParse(reader.GetString(), out DateTime date))
                        return date;
                }
                return reader.GetDateTime();
            }

            public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
            {
                writer.WriteStringValue(value.ToString("yyyy-MM-dd"));
            }
        }

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

原帖标题是net core3.0 经实测3.1也可以   原帖链接:https://blog.csdn.net/chen1989jun/article/details/101285869