繁体   English   中英

ASP.NET 核心 Web API - 如何在 Z336ZFF11E9AA6827A14A7A7A 上将默认日期格式设置为 yyyy-MM-dd

[英]ASP.NET Core Web API - How to set default Date format as yyyy-MM-dd on Swagger

使用 ASP.NET Core-6 Web API 进行支付项目,我有以下字段:

public string ReferenceNumber { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }

默认情况下,在 swagger 上,日期字段显示为:

{
  "referenceNumber": "string",
  "startDate": "2022-09-01T02:25:20.619Z",
  "endDate": "2022-09-01T02:25:20.619Z"
}

在 Swagger 上,如何使其将 StartDate 和 EndDate 的默认格式显示为:

{
  "referenceNumber": "string",
  "startDate": "YYYY-MM-DD",
  "endDate": "YYYY-MM-DD"
}

谢谢

如果你想给 DateTime 一个格式,你的 DateTime 属性必须是一个字符串。

您可以使用Swashbuckle生成 Swagger 示例请求和响应。 “Swashbuckle.AspNetCore.Filters”

它将帮助您创建自己的请求和响应示例,就像这样。

 public class Example
    {
       public string ReferenceNumber { get; set; }
       public string StartDate { get; set; }
       public string EndDate { get; set; }
    }

您的要求样品:

public class SampleRequest : IExamplesProvider <Example>
{
    public Example GetExamples()
    {
        return new Example
            {
                
                ReferenceNumber = "REF001",
                StartDate = DateTime.Now.ToString("d"),
                EndDate = DateTime.Now.ToString("d")
            };
    }
}

您将如何在 swagger 上看到它:

在此处输入图像描述

因此,您可以使用 Newtonsoft 并为所有日期设置默认格式。 这是一个示例代码

services.AddControllers()
    .AddNewtonsoftJson(options =>
    {
        var dateConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter
        {
            DateTimeFormat = "YYYY-MM-DD"
        };
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM