问题
I am trying to parse a date string using the following pattern: yyMMdd
and the STRICT
resolver as follows:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormat).withResolverStyle(ResolverStyle.STRICT);
LocalDate.parse(expiryDate, formatter);
I get the following DateTimeParseException
:
java.time.format.DateTimeParseException: Text '160501' could not be parsed: Unable to obtain LocalDate from TemporalAccessor: {YearOfEra=2016, MonthOfYear=5, DayOfMonth=1},ISO of type java.time.format.Parsed
When I swith to the default resolve style, i.e. ResolverStyle.SMART
it allows such dates as 30th of February.
Can someone please help?
回答1:
The strict resolver requires an era to go with YearOfEra. Change your pattern to use "u" instead of "y" and it will work, ie. "uuMMdd".
来源:https://stackoverflow.com/questions/41103603/issue-with-datetimeparseexception-when-using-strict-resolver-style