我有一個具有java.time.ZonedDateTime
屬性的實體。我想解析從dd/MM/yyyy HH:mm
格式的表單提交的字符串到java.time.ZonedDateTime
。我試過@DateTimeFormat(pattern = "dd/MM/yyyy HH:mm")
。但它只適用於格式的LocalDate
。Spring Boot解析表單數據到ZonedDateTime(dd/MM/yyyy HH:mm)
我還創建了一個Converter
如下
public class ZonedDateTimeConverter implements Converter<String, ZonedDateTime> {
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm");
private final ZoneId zoneId;
public ZonedDateTimeConverter(ZoneId zoneId) {
this.zoneId = zoneId;
}
@Override
public ZonedDateTime convert(String source) {
LOG.info("Parsing string {} to ZonedDateTime: {}", source, ZonedDateTime.parse(source, DATE_TIME_FORMATTER));
return ZonedDateTime.parse(source, DATE_TIME_FORMATTER);
}
}
和覆蓋webMvcConfiguration如下
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new ZonedDateTimeConverter(ZoneId.systemDefault()));
}
}
我不知道是什麼使它工作的正確途徑。 使用Spring Boot 1.5.6。 Thymeleaf 3.0.7