Calendar类用来获取和操作日期的特定部分。如日,时,分。在这些时间上进行加减等。
创建一个当前日期的Calendar对象
//初始化,默认是当前时间
Calendar c = Calendar.getInstance();
set()方法
//创建一个指定日期Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2019,6-1,12);
set()方法可以设置日期。第一个参数是年,第二个参数是月,第三个是日。设置想要的月份需要减一。如想要设置6月 需要写成6-1
getTime()
//时间格式
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(sd.format(c.getTime()));
System.out.println(sd.format(c1.getTime()));
常量 | 描述 |
---|---|
Calendar.YEAR | 年份 |
Calendar.MONTH | 月份 |
Calendar.DATE | 日期 |
Calendar.DAY_OF_MONTH | 日期,和上面的字段意义完全相同 |
Calendar.HOUR | 12小时制的小时 |
Calendar.HOUR_OF_DAY | 24小时制的小时 |
Calendar.MINUTE | 分钟 |
Calendar.SECOND | 秒 |
Calendar.DAY_OF_WEEK | 星期几 |
可以使用这些常量。来设置或操作相应的时间
//将年份改为2018年
c.set(Calendar.YEAR,2018);
//将月份改为7月
c.set(Calendar.MONTH,7-1);
//将日期改为11号
c.set(Calendar.DATE,11);
//将小时改为11点
c.set(Calendar.HOUR_OF_DAY,11);
//将分钟改为30分
c.set(Calendar.MINUTE,30);
//将秒改为37秒
c.set(Calendar.SECOND,37);
System.out.println(sd.format(c.getTime()));
另外在设置时,将天数设为0时,月数会减一,天数会变为上个月最后一天。设置的天数超过当月最大天数时,月数会加,然后继续往下算天数
//日期设置为0时,会变为上月最后一天
c.set(Calendar.DATE,0);
System.out.println(sd.format(c.getTime()));
//日期数超过当前最大天数。会往下月算
c.set(Calendar.DATE,33);
System.out.println(sd.format(c.getTime()));
add()
System.out.println("c1未修改前的时间:"+sd.format(c1.getTime()));
//天数加7
c1.add(Calendar.DATE,7);
System.out.println(sd.format(c1.getTime()));
//天数减3
c1.add(Calendar.DATE,-3);
System.out.println(sd.format(c1.getTime()));
用来操作时间,正数为加,负数为减。