Используя java.time
вместо предыдущего API даты, вы можете использовать DateTimeFormatter
, который будет выдавать исключение, если это не правильный год
DateTimeFormatter.ofPattern("MM/dd/uuuu").parse(("05/14/86")
Исключение в потоке "main" java.time.format.DateTimeParseException: текст '05 / 14/86 'не может быть проанализирован с индексом 6
DateTimeFormatter.ofPattern("MM/dd/uuuu").parse(("05/14/1986")
1986-05-14
В противном случае, если вы хотите разрешить год с двумя и четырьмя цифрами, вы можете использовать «опциональную» функцию форматера, используя [
и ]
.Предоставляя оба возможных формата для года uuuu
и uu
в дополнительных блоках, у вас будет:
DateTimeFormatter.ofPattern("MM/dd/[uuuu][uu]").parse(("05/14/86")
2086-05-14
DateTimeFormatter.ofPattern("MM/dd/[uuuu][uu]").parse(("05/14/1986")
1986-05-14