Ich versuche, einen Datums-Zeichenfolge mit dem folgende Muster zu analysieren: yyMMdd
und die STRICT
Resolver wie folge:Problem mit DateTimeParseException bei der Verwendung von UNABHäNGIGER Resolver Stil
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormat).withResolverStyle(ResolverStyle.STRICT);
LocalDate.parse(expiryDate, formatter);
ich folgende DateTimeParseException
erhalten:
java.time.format.DateTimeParseException: Der Text '160501' konnte nicht analysiert werden: LokalesDatum konnte nicht von TemporalAccessor bezogen werden: {YearOfEra = 2016, MonthOfYear = 5, DayOfMonth = 1}, ISO vom Typ java.time.format.Parsed
Wenn ich auf den Standard resolve Stil swith, das heißt ResolverStyle.SMART
es solche Termine als 30. Februar erlaubt.
Kann mir bitte jemand helfen?
Ich bedauere, dass der 'java.time'-Entwurf nicht schlau genug ist, um zu erkennen, dass das Jahr der Ära (Symbol y) wie das proleptische gregorianische Jahr (Symbol u) behandelt werden sollte. Darüber hinaus sagt das ursprüngliche ISO-8601-Papier nichts über Epochen aus. Daher sollte eine einfache Jahr-Monat-Tag-Kombination wirklich so gehandhabt werden wie das, was ISO sagt, die Ära ignorierend und den proleptischen Gregorianischen Kalender verwendend. –