java.time.LocalDateTime
当用户在与 QueryDSL 结合使用时将 URL 中的日期作为请求参数传递时,我试图找出默认格式
我查看了QuerydslPredicateArgumentResolver
, 并以DateTimeFormatterRegistrar
并找到了默认读取方式结尾:
private DateTimeFormatter getFormatter(Type type) {
DateTimeFormatter formatter = this.formatters.get(type);
if (formatter != null) {
return formatter;
}
DateTimeFormatter fallbackFormatter = getFallbackFormatter(type);
return this.factories.get(type).createDateTimeFormatter(fallbackFormatter);
}
private DateTimeFormatter getFallbackFormatter(Type type) {
switch (type) {
case DATE: return DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT);
case TIME: return DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT);
default: return DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);
}
}
因此,默认值应该是 SHORT,但是它似乎没有按预期工作。
此外,如何覆盖应用程序范围内的格式(不使用特定于字段的@DateTimeFormat
注释)