Мне нужно, чтобы каждый объект DateTime находился в базовом формате «yyyy-MM-dd».Web API 2.0 - форматирование пользовательских дат с помощью JavaScriptConverter
Когда я использовал Json.NET, чтобы сделать это, он работал отлично, добавив следующую строку в WebApiConfig.cs:
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd" });
Однако я переработан мои контроллеры вернуть IHttpActionResult
и просто return Json(objectToSerialize)
. Теперь форматы даты неверны, поскольку я предполагаю, что это потому, что теперь используется JavaScriptConverter
. Дайте мне знать, если я ошибаюсь.
Как преобразовать каждый DateTime в моем сериализованном объекте в нужный мне формат?
По умолчанию они теперь отображаются как «1927-01-29T00: 00: 00» ... Мне нужно «1927-01-29».
Я видел некоторые сумасшедшие хаки, которые кажутся полным переполнением (например, this one).
Есть ли чистый способ сделать это?
Но вам действительно нужно использовать JavaScriptConverter? –
Честно говоря, я понятия не имею, вот почему я спрашиваю. Я бы предпочел глобальный параметр конфигурации, который заставляет Web API форматировать ВСЕ даты в этом формате при сериализации объектов. Контроллер возвращает 'IHttpActionResult', а возвращаемая строка' return Json (myObject) '. – Patrick