Java 8 Time API: how to parse string of format “MM.yyyy” to LocalDate

It makes sense: your input is not really a date because it does not have a day information. You should parse it as a YearMonth and use that result if you don’t care about the day.

String date = "04.2013";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM.yyyy");
YearMonth ym = YearMonth.parse(date, formatter);

If you do need to apply a specific day, you can obtain a LocalDate from a YearMonth for example:

LocalDate ld = ym.atDay(1);
//or
LocalDate ld = ym.atEndOfMonth();

You can also use a TemporalAdjuster, for example, for the last day of the month*:

LocalDate ld = ym.atDay(1).with(lastDayOfMonth());

*with an import static java.time.temporal.TemporalAdjusters.lastDayOfMonth;

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)