После поиска и поиска в исходном коде Spring я обнаружил, что могу настроить форматировщик LocalTime по умолчанию для всего приложения (в основном для использования в параметрах запроса) одним из двух способов (оба подклассами для WebMvcConfigurer
:
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addFormatterForFieldType(LocalTime.class,
(object, locale) -> ISO_LOCAL_TIME.format((LocalTime) object),
(text, locale) -> LocalTime.parse(text));
}
Другой способ - переопределить сам DateTimeFormatterRegistrar
и попросить себя использовать формат iso:
@Override
public void addFormatters(FormatterRegistry registry) {
DateTimeFormatterRegistrar dateTimeFormatterRegistrar = new DateTimeFormatterRegistrar();
dateTimeFormatterRegistrar.setUseIsoFormat(true);
dateTimeFormatterRegistrar.registerFormatters(registry);
}
Какой из них считается наилучшей практикой, и команда Spring не добавит свойствокак тот, который предоставлен для даты spring.mvc.date-format
, которая будет использоваться для времени?
Edit: doc говорит использовать первый подход для регистрации нового форматера; я думаю, что это не тот случай.