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);

转载于:https://www.cnblogs.com/feelaway/p/3497547.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用 java.util.Calendar 类可以设置当前时间。下面是一个示例代码: ```java Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); ``` 或者 ```java Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); ``` 这段代码将当前时间设置calendar 对象。 注意:Calendar是一个抽象类,不能直接实例化,需要使用 Calendar.getInstance() 来获取实例。 ### 回答2: 要使用JavaCalendar类来设置当前时间,可以按照以下步骤进行操作: 首先,我们需要获取一个Calendar对象的实例。可以通过调用`Calendar.getInstance()`方法来获取一个表示当前时间Calendar对象。 接下来,可以通过调用Calendar对象的`set`方法来设置具体的时间信息。例如,如果想要将时间设置为当前时间的下午3点30分,可以使用以下代码: ```java Calendar calendar = Calendar.getInstance(); // 获取Calendar实例 calendar.set(Calendar.HOUR_OF_DAY, 15); // 设置小时为15点(下午3点) calendar.set(Calendar.MINUTE, 30); // 设置分钟为30分 ``` 最后,如果需要获取设置后的时间,可以通过调用Calendar对象的`getTime`方法来获取一个Date对象,然后进一步处理该Date对象。例如,可以将其格式化为特定的日期字符串: ```java Date currentDate = calendar.getTime(); // 获取设置后的时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 定义日期格式化样式 String formattedDate = sdf.format(currentDate); // 格式化Date对象为字符串 System.out.println(formattedDate); // 输出格式化后的时间字符串 ``` 通过上述步骤,就可以使用JavaCalendar类来设置当前时间,并进行进一步的处理和操作。需要注意的是,Calendar月份是从0开始的,即一月表示为0,二月表示为1,以此类推。 ### 回答3: 在Java,我们可以使用Calendar类来设置当前时间。首先,我们需要获取一个Calendar实例,可以通过调用`getInstance()`方法来完成。然后,我们可以使用`set()`方法来设置当前的年份、月份、日期、小时、分钟和秒钟等信息。 下面是设置当前时间的示例代码: ```java import java.util.Calendar; public class Main { public static void main(String[] args) { // 获取一个Calendar实例 Calendar calendar = Calendar.getInstance(); // 设置当前年份 int year = 2022; calendar.set(Calendar.YEAR, year); // 设置当前月份(注意:月份从0开始,所以1代表2月) int month = 1; calendar.set(Calendar.MONTH, month); // 设置当前日期 int dayOfMonth = 1; calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); // 设置当前小时 int hourOfDay = 12; calendar.set(Calendar.HOUR_OF_DAY, hourOfDay); // 设置当前分钟 int minute = 0; calendar.set(Calendar.MINUTE, minute); // 设置当前秒钟 int second = 0; calendar.set(Calendar.SECOND, second); // 设置当前毫秒数 int millisecond = 0; calendar.set(Calendar.MILLISECOND, millisecond); // 输出设置后的时间 System.out.println(calendar.getTime()); } } ``` 以上代码就会输出设置后的日期时间,例如:`Sat Feb 01 12:00:00 CST 2022`。 需要注意的是,月份从0开始计数,所以1代表2月,2代表3月,依此类推。另外,小时采用24小时制,范围从0到23。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值