从.Net Core 2.1 Web API中的JSON DateTime响应中删除时间组件

从.Net Core 2.1 Web API中的JSON DateTime响应中删除时间组件,json,asp.net-core-webapi,date-formatting,iso8601,asp.net-core-2.1,Json,Asp.net Core Webapi,Date Formatting,Iso8601,Asp.net Core 2.1,我有一个ASP.NETCore2.1WebAPI,它在一个控制器操作中返回日期时间。JSON如下所示: 1965-02-03T00:00:00 我想这是ISO8601 因为这实际上是一个出生日期,我希望它不包含时间成分。Net没有只包含日期的数据类型(就像我的底层MySQL数据库一样),所以我必须使用DateTime类型。有没有办法将发送到消费客户端的JSON数据格式化为YYYY-MM-DD 控制器操作非常简单: // GET: api/Persons [HttpGet]

我有一个ASP.NETCore2.1WebAPI,它在一个控制器操作中返回日期时间。JSON如下所示:

1965-02-03T00:00:00
我想这是ISO8601

因为这实际上是一个出生日期,我希望它不包含时间成分。Net没有只包含日期的数据类型(就像我的底层MySQL数据库一样),所以我必须使用DateTime类型。有没有办法将发送到消费客户端的JSON数据格式化为YYYY-MM-DD

控制器操作非常简单:

    // GET: api/Persons
    [HttpGet]
    public IEnumerable<Person> GetPerson()
    {
        return _context.Persons;
    }

要在
Asp.Net核心
中配置
Json序列化
,可以使用
AddJsonOptions
JsonSerializerSettings

也许会有帮助。它是老式的ASP.NET,但考虑到ASP.NET核心序列化过程使用JSON.NET,其原理是相同的。
public partial class Person
{
    public int Id { get; set; }
    public string Forenames { get; set; }
    public string Surname { get; set; }
    public string Title { get; set; }
    public string IdNumber { get; set; }
    public DateTime? DateOfBirth { get; set; }
}
    //
    // Summary:
    //     Gets or sets how System.DateTime and System.DateTimeOffset values are formatted
    //     when writing JSON text, and the expected date format when reading JSON text.
    //     The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
    public string DateFormatString { get; set; }
        services.AddMvc()
        .AddJsonOptions(opt => {
            opt.SerializerSettings.DateFormatString = "yyyy-MM-dd";
        })
        .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);