![](/img/trans.png)
[英]How to accept date only in yyyy-MM-dd format in ASP.NET WEB API from Form body?
[英]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.