【发布时间】:2023-03-30 19:10:02
【问题描述】:
我的 .NET Core API 出现问题,当 DateTimes 被序列化时,如果值为 0,它将离开毫秒。This 问题解释了这个问题。我在我的 .NET Core Startup 类中添加了以下内容,它解决了这个问题,当我执行GET 时,所有日期的格式都会正确:
services.AddMvc()
.AddJsonOptions(options =>
{
var settings = options.SerializerSettings;
var dateConverter = new IsoDateTimeConverter
{
DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff"
};
settings.Converters.Add(dateConverter);
});
在实现这个之后,我发现它破坏了其他地方的默认模型绑定。例如,我有一个接受以下视图模型的POST 端点:
public class PatientRegistrationViewModel
{
public DateTime DateOfBirth { get; set; }
}
之前我在成功绑定的请求正文中传递了以下 JSON 数据:
{
dateOfBirth: '1981-04-18'
}
在实现上面的日期转换器后,视图模型在我的控制器中等于 null。
【问题讨论】:
-
您是否忘记了
DateTimeFormat字符串末尾的'Z'? -
@haindl 不幸的是,这并没有做到。
标签: c# asp.net json api asp.net-core