在搜索并查看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.mvc.date-format
以用于时间的属性?
编辑:文档说使用第一种方法来注册一个新的格式化程序;我认为这里不是这种情况。