因为Date是早期版本就已经开始存在,过于古老,很多的构造器以及方法都已经过时了,java可以使用Calendar来使用对时间的计算操作以及转换等等……
1.基本用法,获取年月日时分秒星期
@Test
public void test1() {
获取年
int year = calendar.get(Calendar.YEAR);
获取月,这里需要需要月份的范围为0~11,因此获取月份的时候需要+1才是当前月份值
int month = calendar.get(Calendar.MONTH) + 1;
获取日
int day = calendar.get(Calendar.DAY_OF_MONTH);
获取时
int hour = calendar.get(Calendar.HOUR);//12小时
int hour = calendar.get(Calendar.HOUR_OF_DAY); // 24小时
获取分
int minute = calendar.get(Calendar.MINUTE);
获取秒
int second = calendar.get(Calendar.SECOND);
星期
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("现在是" + year + "年" + month + "月" + day + "日" + hour
+ "时" + minute + "分" + second + "秒" + "星期" + weekday);
}
- Calendar类的静态方法getInstance()可以初始化一个日历对象:
Calendar cal = Calendar.getInstance();
可以使用下面三个方法把日历定到任何一个时间段:
set(int year ,int month,int date)
set(int year ,int month,int date,int hour,int minute)
set(int year ,int month,int date,int hour,int minute,int second)
3.获取时间
System.out.println("年:" + cal.get(Calendar.YEAR));
System.out.println("月:" + (cal.get(Calendar.MONTH) + 1)); // 月是从0开始
System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
System.out.println("时:" + cal.get(Calendar.HOUR_OF_DAY));
System.out.println("分:" + cal.get(Calendar.MINUTE));
System.out.println("秒:" + cal.get(Calendar.SECOND));
3.设置时间
使用set一次设置
cal.set(year, month, date, hourOfDay, minute, second);//月是从0开始(0~11)
cal.set(2019, 4, 4, 4, 4, 4);
System.out.println(cal.getTime());
4.单个字段一一设置
cal.set(Calendar.YEAR, 2019);
cal.set(Calendar.MONTH, Calendar.MAY);//使用英文的十二个月的单词
cal.set(Calendar.DAY_OF_MONTH, 4);
cal.set(Calendar.HOUR_OF_DAY, 4);
cal.set(Calendar.MINUTE, 4);
cal.set(Calendar.SECOND, 4);
System.out.println(cal.getTime());
5. 时间计算add方法
cal.add(Calendar.MONTH, 5);//+5个月
System.out.println(cal.getTime());
cal.add(Calendar.MONTH, ‐5);
System.out.println(cal.getTime());
roll方法
cal.roll(Calendar.MONTH, 5);//+5个月
System.out.println(cal.getTime());
cal.roll(Calendar.MONTH, ‐5);
System.out.println(cal.getTime());
add方法会产生其他相关时间属性的连动变化
roll方法只是对相应时间属性的域内做变化
Calendar calAdd = Calendar.getInstance();
calAdd.add(Calendar.MONTH, 9);
System.out.println(calAdd.getTime());
Calendar calRoll = Calendar.getInstance();
calRoll.roll(Calendar.MONTH, 9);
System.out.println(calRoll.getTime());