如何使用 Spring MVC 将表单参数绑定到 Java 8 持续时间?

How can I bind a form parameter to a Java 8 Duration using Spring MVC?

我知道我可以使用以下方法将 Spring MVC 表单 bean 绑定到 LocalDateTime:

@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private LocalDateTime startTime;

这会将 2016-01-11T15:05:05.123Z 之类的字符串转换为 LocalDateTime 对象。

我在这里找到了一些文档:http://blog.codeleak.pl/2014/06/spring-4-datetimeformat-with-java-8.html

我找不到如何对 java.time.Duration 做同样的事情。我该怎么做?

好像什么都不需要。它开箱即用(使用 Spring Boot 1.3.1 和 Spring 4.2.4),持续时间和 ZoneId:

private Duration duration;
private ZoneId timeZone;

我测试了 "PT15H" 字符串的持续时间和 "Europe/Brussels" 的时区。