Как правильно настроить сериализацию даты в весеннем контроллере mvc - PullRequest
0 голосов
/ 04 ноября 2019

В моем весеннем загрузочном приложении у меня есть метод контроллера, в kotlin:

@GetMapping("/testDate")
@ResponseBody
fun testDate(): ResponseEntity<Date> {
    return ResponseEntity.ok().body(Date())
}

Дата - это java.util.Date.

Ответ этого метода - метка времени. Например, 1572869050518. Я хочу использовать произвольный формат в любом месте моего приложения, например, «dd.MM.yyyy». И я не могу найти способ его настройки.

Я использую классы с полями Date из другого приложения и API другого приложения, чтобы получить его. Поэтому я не могу аннотировать поля с помощью @JsonFormat или других аннотаций. Я получаю готовые объекты и возвращаю его в контроллеры, чтобы показать его пользователям.

Я читаю эту статью , затем добавляю spring.jackson.date-format=yyyy-MM-dd HH:mm:ss - безрезультатно.

В это ТАК вопросы, которые я обнаружил, необходимо добавить com.fasterxml.jackson.datatype:jackson-datatype-joda. Хорошо, я добавляю это, без эффекта в результате.

Я добавляю spring.jackson.serialization.write-dates-as-timestamps=false, без эффекта.

И наконец, я нашел §3.6 в весенних документах , добавитьконфигурация с компонентом FormattingConversionService, как в примере, без эффекта.

Есть ли рабочий пример, как настроить форматирование даты по умолчанию в приложении Spring mvc?

UPD1. НеДело в том, что дата является частью другого объекта. Если я введу класс data class TestDateObj(var dt: Date), измените метод на

@GetMapping("/testDate")
@ResponseBody
fun testDate(): ResponseEntity<TestDateObj> {
    return ResponseEntity.ok().body(TestDateObj(dt = Date()))
}

, в результате я получу {"dt":1572878129672}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...