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

本文介绍了一种在NetCore3.0及3.1中解决DateTimeJsonConverter问题的方法,通过自定义DatetimeJsonConverter类,实现了日期时间的正确读取与字符串格式的写入,适用于不需要具体时间的场景。
摘要由CSDN通过智能技术生成

在网上找了好多好多的帖子都是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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值