Если месяц находится в верхнем или нижнем регистре, то есть нет случая с заголовком, DateTimeFormatter не может проанализировать дату. Есть ли простой способ конвертировать дату в заголовок или способ сделать форматтер более мягким?Как обрабатывать верхний или нижний регистр в JSR 310?
for (String date : "15-JAN-12, 15-Jan-12, 15-jan-12, 15-01-12".split(", ")) {
try {
System.out.println(date + " => " + LocalDate.parse(date,
DateTimeFormatter.ofPattern("yy-MMM-dd")));
} catch (Exception e) {
System.out.println(date + " => " + e);
}
}
печатает
15-JAN-12 => java.time.format.DateTimeParseException: Text '15-JAN-12' could not be parsed at index 3
15-Jan-12 => 2015-01-12
15-01-12 => java.time.format.DateTimeParseException: Text '15-01-12' could not be parsed at index 3
15-jan-12 => java.time.format.DateTimeParseException: Text '15-jan-12' could not be parsed at index 3
@hraldK Если '.parseLenient()' не установлен, формат «15-01-12» завершится с ошибкой. – SubOptimal