One approach is to not have a month field by default:
DateTimeFormatter f = new DateTimeFormatterBuilder() .appendPattern("ddyyyy") .parseDefaulting(MONTH_OF_YEAR, 1) .toFormatter(); LocalDate date = LocalDate.parse("141968", f); System.out.println(date.getDayOfMonth()); System.out.println(date.getYear());
Another is the TemporalAccessor request:
DateTimeFormatter f = DateTimeFormatter.ofPattern("ddyyyy"); TemporalAccessor parsed = f.parse("141968"); System.out.println(parsed.get(ChronoField.YEAR)); System.out.println(parsed.get(ChronoField.DAY_OF_MONTH));
(Note the use of "y" rather than "Y" for parsing)
source share