calendar.getActualMaximum(calendar.DAY

mac2023-06-10  15

例如:

在2017.03.29-31号

新建一个Calendar的単例

设置年:2017 设置月:2 int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH)

得到日期为:3

例如:

在2017.03.01-28号

新建一个Calendar的単例

设置年:2017 设置月:2 int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH)

得到日期为:28

原因:

Calendar类当你set的时候,并不会立即生效,只有等你get的时候才会生效

解决方法:

实例化Calendar之后,执行clear方法,清除Calendar中的缓存

Calendar calendar=Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, 2017); calendar.set(Calendar.MONTH, 1); int firstDay=calendar.getActualMinimum(calendar.DAY_OF_MONTH); int lastDay=calendar.getActualMaximum(calendar.DAY_OF_MONTH); System.out.println(2+"月第一天是:"+firstDay); System.out.println(2+"月最后一天是:"+lastDay); calendar.set(Calendar.DAY_OF_MONTH, lastDay); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); System.out.println(sdf.format(calendar.getTime()));
最新回复(0)