正如我刚刚了解到的,现在有一些特殊的方法。
你现在可以这样做:
public static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMM");
public static final DateTimeFormatter OUT_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static LocalDate[] getFirstAndLastDateOfMonthNew(String yearAndMonth) {
final LocalDate[] result = new LocalDate[2];
final YearMonth yearMonth = YearMonth.parse(yearAndMonth, FORMATTER);
result[0] = yearMonth.atDay(1);
result[1] = yearMonth.atEndOfMonth();;
return result;
}
旧的方法是:
只需将其添加01到日期并解析它。加一个月减一天。
public static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
public static final DateTimeFormatter OUT_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static LocalDate[] getFirstAndLastDateOfMonth(String yearAndMonth) {
final LocalDate[] result = new LocalDate[2];
final LocalDate first = LocalDate.parse(yearAndMonth + "01", FORMATTER);
final LocalDate last = first.plusMonths(1).minusDays(1);
result[0] = first;
result[1] = last;
return result;
}