Я мигрирую C# API с. NET Framework на. NET Core 3.1.
У меня есть требование, чтобы некоторые поля возвращали только yyyyMMdd
(без времени) и другие поля это вернуло бы полное значение DateTime (дата и время).
В старом. NET мире фреймворков мы могли бы сделать быстрый конвертер, подобный этому:
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"
Я знаю, что вы можете добавить JsonSerializerOption
в Startup.cs
, однако это заставит все даты использовать одинаковое форматирование. Мне нужно выбрать.
Я пробовал:
- сделать несколько конвертеров json, однако их никогда не вызывают / работают
[DataType(DataType.Date)]
[JsonConverter(typeof(DateTimeConverter))]
Я потратил на это целый день. Я надеюсь, что кто-то сделал это и может указать на мою глупую ошибку.