< prev index next >
src/java.base/share/classes/java/time/format/DateTimeFormatter.java
Print this page
*** 921,930 ****
--- 921,931 ----
* The format consists of:
* <ul>
* <li>The {@link #ISO_LOCAL_DATE_TIME}
* <li>The {@link ZoneOffset#getId() offset ID}. If the offset has seconds then
* they will be handled even though this is not part of the ISO-8601 standard.
+ * The offset parsing is lenient, which allows the minutes and seconds to be optional.
* Parsing is case insensitive.
* </ul>
* <p>
* The returned formatter has a chronology of ISO set to ensure dates in
* other calendar systems are correctly converted.
*** 933,943 ****
--- 934,946 ----
public static final DateTimeFormatter ISO_OFFSET_DATE_TIME;
static {
ISO_OFFSET_DATE_TIME = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.append(ISO_LOCAL_DATE_TIME)
+ .parseLenient()
.appendOffsetId()
+ .parseStrict()
.toFormatter(ResolverStyle.STRICT, IsoChronology.INSTANCE);
}
//-----------------------------------------------------------------------
/**
*** 1158,1167 ****
--- 1161,1171 ----
* <li>Two digits for the {@link ChronoField#DAY_OF_MONTH day-of-month}.
* This is pre-padded by zero to ensure two digits.
* <li>If the offset is not available to format or parse then the format is complete.
* <li>The {@link ZoneOffset#getId() offset ID} without colons. If the offset has
* seconds then they will be handled even though this is not part of the ISO-8601 standard.
+ * The offset parsing is lenient, which allows the minutes and seconds to be optional.
* Parsing is case insensitive.
* </ul>
* <p>
* As this formatter has an optional element, it may be necessary to parse using
* {@link DateTimeFormatter#parseBest}.
*** 1176,1186 ****
--- 1180,1192 ----
.parseCaseInsensitive()
.appendValue(YEAR, 4)
.appendValue(MONTH_OF_YEAR, 2)
.appendValue(DAY_OF_MONTH, 2)
.optionalStart()
+ .parseLenient()
.appendOffset("+HHMMss", "Z")
+ .parseStrict()
.toFormatter(ResolverStyle.STRICT, IsoChronology.INSTANCE);
}
//-----------------------------------------------------------------------
/**
< prev index next >