JAVA Calendar设置时间,月份总是加1

 

JAVA Calendar设置时间,月份总是加1

 

代码:

 


 Calendar calendar = Calendar.getInstance();
 calendar.set(Calendar.MONTH, month-1 );
 calendar.set(Calendar.YEAR, year);
 System.out.println(calendar.get(Calendar.MONTH));
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);  


 

 

 


测试的结果是,当月份参数month的实际天数小于31天时,打印的月份结果都是加1

 

 

网上找到的资料:http://topic.csdn.net/u/20071030/11/cc414f35-5d1b-4bae-a1c3-21e9a7fa662e.html

 

我测试时间是2011/10/31,代码里没设Calendar.DAY_OF_MONTH,则日期为当前的31号,而例如9月份是30天,则月份自动加1,结果calendar的日期为2011/10/01;假如传入的参数是2月份,2011年2月份共28天,那calendar的日期为2011/03/03

解决方法:

 

        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_MONTH, 1); //设置日期
        calendar.set(Calendar.MONTH, month-1 );
        calendar.set(Calendar.YEAR, year);        
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

posted on 2013-12-30 12:46  feelaway  阅读(5126)  评论(0编辑  收藏  举报

导航