calendar.getActualMaximum(calendar.DAY_OF_MONTH)的问题
例如:
在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()));