Я реализовал средство форматирования в приложении веб-службы REST Spring Boot для форматирования всех атрибутов LocalDateTime (Java 8), чтобы они отображались в указанном формате c в ответе веб-службы.
public class LocalDateTimeFormatter implements Formatter<LocalDateTime> {
@Override
public String print(LocalDateTime temporal, Locale locale) {
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("yyyy-MM-dd HH:mm:ss");
return formatter.format(temporal);
}
@Override
public LocalDateTime parse(String text, Locale locale)
throws ParseException {
return LocalDateTime.parse(text);
}
}
Форматер также был зарегистрирован, как показано ниже, чтобы он работал на уровне приложения, чтобы избежать индивидуального аннотирования всех атрибутов LocalDateTime
@Configuration
public class ContentFormatter implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addFormatter(new LocalDateTimeFormatter());
}
}
Но форматирование не применяется к ответу из Интернета сервис, accessDate является типом атрибута LocalDateTime
{
"content" : "Hello, World!",
"id" : 0,
"accessDate" : "2020-04-07T19:56:41.48"
}