public static String getLastDayOfMonth(int year, int month) throws Exception{
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(year+"-"+(month<10?("0"+month):month)+"-01");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, 1);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.DATE, -1);
Date lastDayOfMonth = calendar.getTime();
return sdf.format(lastDayOfMonth);
}
public static void main(String[] args) throws Exception{
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 1));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 3));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 4));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 5));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 6));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 7));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 8));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 9));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 10));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 11));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 12));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2018, 1));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2018, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2018, 3));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2010, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2011, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2012, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2013, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2014, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2015, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2016, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2017, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2018, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2019, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2020, 2));
System.out.println("Last Day of Month: " + getLastDayOfMonth(2021, 2));
}
输出:
一个月的最后一天:2017-01-31一个月的
最后一天:2017-02-28一个月的
最后一天:2017-03-31一个月的
最后一天:2017-04-30一个月的
最后一天:2017-05-31
一个月的最后一天:2017-06-30一个月的
最后一天:2017-07-31一个月的
最后一天:2017-08-31一个月的
最后一天:2017-09-30一个月的
最后一天:2017-10-31
一个月的最后一天:2017-11-30一个月的
最后一天:2017-12-31一个月的最后一天:2018-01-31
一个月的最后一天:2016-02-29一个月的
最后一天:2017-02-28一个月的
最后一天:2018-02-28一个月的最后一天:2019-02-28一个月的
最后一天:2020-02-29一个月的最后一天:2021-02-28
当月最后一天:2018年2月28日
当月最后一天:2018年3月31日
一个月的最后一天:2010-02-28一个月的
最后一天:2011-02-28一个月的
最后一天:2012-02-29一个月的
最后一天:2013-02-28
一个月的最后一天:2014-02-28一个月的
最后一天:2015-02-28一个月的
java.util.Date
和SimpleDateFormat
类现在已被遗留,由java.time类取代。有关使用示例和其他现代日期时间类的信息,请参见答案,例如Zeeshan的答案和Krishna的答案LocalDate
。