DateTimeFormatterRegistrar supports Duration and Period as well

Issue: SPR-13721
This commit is contained in:
Juergen Hoeller
2015-11-25 00:21:03 +01:00
parent b35d44bd4c
commit d5ca5b74a5
5 changed files with 158 additions and 2 deletions

View File

@@ -16,10 +16,12 @@
package org.springframework.format.datetime.standard;
import java.time.Duration;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Period;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
@@ -334,6 +336,24 @@ public class DateTimeFormattingTests {
assertTrue(binder.getBindingResult().getFieldValue("instant").toString().startsWith("2009-10-31"));
}
@Test
public void testBindPeriod() {
MutablePropertyValues propertyValues = new MutablePropertyValues();
propertyValues.add("period", "P6Y3M1D");
binder.bind(propertyValues);
assertEquals(0, binder.getBindingResult().getErrorCount());
assertTrue(binder.getBindingResult().getFieldValue("period").toString().equals("P6Y3M1D"));
}
@Test
public void testBindDuration() {
MutablePropertyValues propertyValues = new MutablePropertyValues();
propertyValues.add("duration", "PT8H6M12.345S");
binder.bind(propertyValues);
assertEquals(0, binder.getBindingResult().getErrorCount());
assertTrue(binder.getBindingResult().getFieldValue("duration").toString().equals("PT8H6M12.345S"));
}
public static class DateTimeBean {
@@ -366,6 +386,10 @@ public class DateTimeFormattingTests {
private Instant instant;
private Period period;
private Duration duration;
private final List<DateTimeBean> children = new ArrayList<DateTimeBean>();
public LocalDate getLocalDate() {
@@ -456,6 +480,22 @@ public class DateTimeFormattingTests {
this.instant = instant;
}
public Period getPeriod() {
return period;
}
public void setPeriod(Period period) {
this.period = period;
}
public Duration getDuration() {
return duration;
}
public void setDuration(Duration duration) {
this.duration = duration;
}
public List<DateTimeBean> getChildren() {
return children;
}