.net项目返回时间带T的解决方案

在HostModule中 ConfigureServices内添加调用   

ConfigureJsonOptions();

同级下方添加

private void ConfigureJsonOptions()
        {
            //context.Services.AddControllers().AddJsonOptions(options =>
            //{
            //    options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
            //    options.JsonSerializerOptions.PropertyNamingPolicy = null;
            //});
            Configure<JsonOptions>(x =>
            {
                x.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
                x.JsonSerializerOptions.PropertyNamingPolicy = null;
                x.JsonSerializerOptions.Converters.Add(new JsonTimeSpanConverter());
            });

            Configure<AbpJsonOptions>(x =>
            {
                x.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss";
            });
        }

外层添加

public class JsonTimeSpanConverter : JsonConverter<TimeSpan>
    {
        public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
            var value = reader.GetString();
            return TimeSpan.TryParse(value, out var timeSpan) ? timeSpan : new TimeSpan();
        }

        public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options)
        {
            var timeSpanString = value.ToString();
            writer.WriteStringValue(timeSpanString);
        }
    }

自动讲时间格式化

posted @ 2021-12-16 16:50  天辰啦啦啦  阅读(521)  评论(0)    收藏  举报