Calendar类是一个抽象类,因此不能使用new的方式创建对象,在使用时可以直接使用Calendar类中提供的静态方法getInstance()取得Calendar类的一个实例。
Calendar类为一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
- 它本身就是一个时间,不用再实例化时间对象
- 象data对象一样,它可以获得一些当前的时间属性,但要调用get成员方法
/** * 获取这些属性,需要调用对象.get()方法,注意值的范围 */ System.out.println(cal.get(Calendar.YEAR));//2018获取年份 System.out.println(cal.get(Calendar.MONTH));//10,从0开始 System.out.println(cal.get(Calendar.DATE));//29 System.out.println(cal.get(Calendar.DAY_OF_MONTH));//29 System.out.println(cal.get(Calendar.DAY_OF_WEEK_IN_MONTH));//5当前月的第几个星期 System.out.println(cal.get(Calendar.DAY_OF_WEEK));//5当前星期的第几天,周四 System.out.println(cal.get(Calendar.DAY_OF_YEAR));//333当前年的天数 System.out.println(cal.get(Calendar.HOUR));//5,12小时制0..11 System.out.println(cal.get(Calendar.HOUR_OF_DAY));//17 24小时制 0..23 // 加5年 cal.add(Calendar.YEAR, 5); System.out.println("新的年:" + cal.get(Calendar.YEAR));
- 我们可以对它进行加操作,改变时间的年月日。
/** * 通过add方法,可以对日历进行操作。 * 参数可以为年、月、日,正、负数 * 加之后时间改变 */ // 减9个月 cal.add(Calendar.MONTH, -9); System.out.println("新的月:" + (cal.get(Calendar.MONTH) + 1)); // 加25天 cal.add(Calendar.DATE, 25); System.out.println("新的日:" + cal.get(Calendar.DATE)); Date date = cal.getTime(); System.out.println("新的時間:" + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(date));