Java 8及更高版本。
通过使用
convertedDate.getMonth().length(convertedDate.isLeapYear())where
convertedDate是的实例
LocalDate。
String date = "1/13/2012";LocalDate convertedDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("M/d/yyyy"));convertedDate = convertedDate.withDayOfMonth( convertedDate.getMonth().length(convertedDate.isLeapYear()));Java 7及更低版本。
通过使用以下
getActualMaximum方法
java.util.Calendar:
String date = "1/13/2012";SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");Date convertedDate = dateFormat.parse(date);Calendar c = Calendar.getInstance();c.setTime(convertedDate);c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));


