【发布时间】:2020-03-04 21:06:07
【问题描述】:
我正在将 C# API 从 .NET Framework 迁移到 .NET Core 3.1。
我要求某些字段仅返回yyyyMMdd(没时间)
以及其他将返回完整日期时间值(日期和时间)的字段。
在旧的 .NET Framework 世界中,我们可以像这样制作一个快速转换器:
public class OnlyDateConverter : IsoDateTimeConverter
{
public OnlyDateConverter()
{
DateTimeFormat = "yyyyMMdd";
}
}
并在我的模型中使用它
[JsonConverter(typeof(DateTimeConverter))]
public DateTime OrderDate { get; set; }
这在 .NET Core 3.1 中不起作用。
当我通过 Swagger 调用它时,我返回的 JSON 是:
"OrderDate": "2002-05-22T00:00:00"
我知道您可以在Startup.cs 中添加JsonSerializerOption,但这会强制所有日期使用相同的格式。我需要挑选。
我试过了:
- 制作多个 json 转换器,但它们永远不会被调用/工作
[DataType(DataType.Date)][JsonConverter(typeof(DateTimeConverter))]
我花了一整天的时间。我希望有人这样做并能指出我的愚蠢错误。
【问题讨论】:
标签: c# date datetime json.net .net-core-3.1