1 获取具体时间单位
//1 获取当前时间日期
Calendar c = Calendar.getInstance(); //使用静态方法,获取1个抽象类的子类
//2 年月日
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int date = c.get(Calendar.DATE);
int day = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year+"-"+month+"-"+date+" "+day);//2019-3-19 3(一周中的第3天,也就是星期二)
//获取理论最大值
System.out.println(c.getMaximum(Calendar.DAY_OF_YEAR)); //366
//获取实际最大值
System.out.println(c.getActualMaximum(Calendar.DAY_OF_YEAR));//365
2 修改当前日期
//1 获取当前时间日期
Calendar c = Calendar.getInstance();
//2 往后移动2个月.负数代表往前移(当前时间是2019年3月19)
c.add(Calendar.MONTH, 3);
c.roll(Calendar.YEAR,1);//前移1年
int month = c.get(Calendar.MONTH)+1;
System.out.println(month);//6
System.out.println(c.get(Calendar.YEAR));//2020
//3 直接修改到指定日期
c.set(Calendar.DATE, 25);//指定单位进行修改
System.out.println(c.get(Calendar.DATE));//25
c.set(2088, 5, 1); //直接修改到年月日
System.out.println(c.get(Calendar.YEAR));//2088
System.out.println(c.get(Calendar.MONTH)+1);//6
System.out.println(c.get(Calendar.DATE));//1
3 date 与calendar的转换
//1 Date对象-->Calendar对象
Date d = new Date();//当前是2019年3月19
//d.setYear(119);//修改年修,改为2019年
Calendar c = Calendar.getInstance();
c.setTime(d);//!!!将时间改到date对象对应的时间。
System.out.println(c.get(Calendar.YEAR));//2019
//2 Calendar对象-->Date对象
c.set(2008,8,8); //修改时间
Date d2 = c.getTime(); //!!!!获取Calendar对象对应的date对象
System.out.println("北京奥运会距离1970-1-1的毫秒数:"+d2.getTime());
4 计算距离时间
//1 获得2019-4-1的Date对象
Calendar c = Calendar.getInstance();
c.set(2019, Calendar.APRIL,1);
Date d1 = c.getTime();
//2 获得今天的Date对象
Date d2 = new Date();
//3 毫秒数相减
long dur = (d1.getTime()-d2.getTime())/(24*60*60*1000);
System.out.println("距离2019-4-1的天数是:"+dur);//12 2019-3-19(今天,不算今天),再过12天就4月1号了