如何在java中获取给定月份和年份的最后日期

use*_*430 0 java date

对于用户给定的月份和年份,我有以下格式的日期,例如 02/15MM/yy格式。我想找到这个月的最后一天,如果是闰年,它应该返回 29 否则不需要返回 28。有人能告诉怎么做吗?

nra*_*ner 5

Java 8 中,您可以执行以下操作:

private static final String DATE_PATTERN = "MM/yy";

public int getLastDayOfMonth(String dateString) {
    DateTimeFormatter pattern = DateTimeFormatter.ofPattern(DATE_PATTERN);
    YearMonth yearMonth = YearMonth.parse(dateString, pattern);
    LocalDate date = yearMonth.atEndOfMonth();
    return date.lengthOfMonth();
}
Run Code Online (Sandbox Code Playgroud)

Java 的早期版本中,您可以:

public int getLastDayOfMonth(String dateString) throws ParseException {
    DateFormat dateFormat = new SimpleDateFormat(DATE_PATTERN);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(dateFormat.parse(dateString));
    return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
Run Code Online (Sandbox Code Playgroud)