У меня есть проект Spring 5 (не Spring Boot), конечная точка которого возвращает объект, определенный в банке зависимостей (я не могу его изменить).Этот объект имеет поле, которое является датой (LocalDateTime).
Дата отформатирована в ответе так:
{
"dayOfMonth": 21,
"dayOfWeek": "THURSDAY",
"month": "FEBRUARY",
"year": 2019,
"dayOfYear": 52,
"hour": 11,
"minute": 24,
"nano": 753000000,
"second": 32,
"monthValue": 2,
"chronology": {
"id": "ISO",
"calendarType": "iso8601"
}
}
Как я могу написать как ISO 8601 или подобное?Я попытался добавить следующие зависимости:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.9.8</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<version>2.9.8</version>
</dependency>
Я также попытался создать основной компонент для ObjectMapper:
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.registerModule(new Jdk8Module());
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
return objectMapper;
}
Картограф работает нормально, когда используется явно, но не тогда, когда Spring возвращаетОтвет JSON REST.
Чтобы упростить и не писать весь код, я бы хотел, чтобы конечные точки, такие как приведенная ниже, неявно форматировали дату правильно.
@GetMapping(path = "/date", produces = "application/json")
public @ResponseBody ResponseEntity<LocalDateTime> date(@RequestHeader HttpHeaders headers) {
return new ResponseEntity<>(LocalDateTime.now(), HttpStatus.OK);
}
Спасибо.