добавил к вопросу, что я надеялся обрабатывать как 2-, так и 4-значные годы с "M / d / y".

a 8 приведенный ниже код анализирует «18» в год «0018» вместо «2018».

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("M/d/y");
return LocalDate.parse(date, formatter);

дата ввода "01/05/18".

1) почему результат "0018"? Есть лиDateTimeFormatter не следовать правилу 80-20?

2)Как контролировать разбор SimpleDateFormat до 19xx или 20xx? говорил оSimpleDateFormat.set2DigitYearStart(Date) может быть использован, чтобы исправить год. Есть ли что-то похожее на это дляDateTimeFormatter?

Я надеялся, что "M / d / y" проанализирует 2 и 4 цифры года.

«M / d / yy» генерирует исключение для четырехзначных лет и анализирует «01/05/97» в «2097-01-05». В идеале это должно быть проанализировано в "1997-01-05".

«М / д / гггг» выбрасывает исключение на 2 цифры года.

Ответы на вопрос(1)

Ваш ответ на вопрос