.net core swagger 统一日期格式化

发布时间 2023-03-30 11:24:57作者: EarlyTao
 

由于在swagger UI模型架构上,字段日期显示为“日期”:“2023-03-30T09:10:47.507Z”但我需要将其作为“日期”:“2023-03-30 09:10:47”.

tips:以下这两种格式只是简单了解了一下不是很全面,有不足或不对的地方请指出问题

首先看一下swagger默认显示的Date类型是这样的(这里示例代码默认显示的当前日期的UTC  可能和后面演示的不一样)这是标准的 XML Schema的"日期型数据格式”T是代表后面跟着“时间”.Z代表0时区,或者叫UTC统

.net6以下在startup下ConfigureServices添加;.net6 及以上在Program下ConfigureServices添加

 

public override void ConfigureServices(IServiceCollection services)
        {
            services.AddNewtonsoftJson(options =>
                    {
                        options.SerializerSettings.ContractResolver = new DefaultContractResolver();
                        var dateConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter
                        {
                            DateTimeFormat = "yyyy-MM-dd hh:mm:ss"
                        };

                        options.SerializerSettings.Converters.Add(dateConverter);
                        options.SerializerSettings.Culture = new CultureInfo("en-IE");
                        options.SerializerSettings.DateFormatHandling = DateFormatHandling.IsoDateFormat;
                    });
            base.ConfigureServices(services);
        }