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()));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章