温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

.Net Core怎么解决WebAPI中返回时间格式带T的问题

发布时间:2022-04-15 17:31:01 来源:亿速云 阅读:509 作者:zzz 栏目:开发技术

这篇文章主要介绍“.Net Core怎么解决WebAPI中返回时间格式带T的问题”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“.Net Core怎么解决WebAPI中返回时间格式带T的问题”文章能帮助大家解决问题。

在项目开发中遇到了返回的时间格式带T的问题,如图所示:

.Net Core怎么解决WebAPI中返回时间格式带T的问题

直接把这种结果返回给前端,前端很难处理这个时间格式问题,所以就需要后端在返回数据的时候对这种格式进行处理。

新建Order类:

using System;

namespace WebApiTest
{
    public class Order
    {
        public int ID { get; set; }

        public DateTime OrderTime { get; set; }
    }
}

新建一个格式化类DatetimeJsonConverter,继承自JsonConverter,然后重写里面的方法:

using System;
using System.Text.Json;
using System.Text.Json.Serialization;

namespace WebApiTest
{
    /// <summary>
    /// 格式化返回的时间格式
    /// </summary>
    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 HH:mm:ss"));
        }
    }
}

然后修改Startup类的ConfigureServices方法

public void ConfigureServices(IServiceCollection services)
{
    #region 解决返回时间带T的问题
    services.AddControllers().AddJsonOptions(configure =>
    {
        configure.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter());

    });
    #endregion
}

返回结果

.Net Core怎么解决WebAPI中返回时间格式带T的问题

关于“.Net Core怎么解决WebAPI中返回时间格式带T的问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI