一 Calendar类的简单使用
YEAR | 年 |
MONTH | 月(注意月的值是从O开始的,即如果取出的值为0,即为1月) |
DATE | 日 |
HOUR | 以12小时为周期的小时(注意:正午和午夜用O表示,而不是12) |
MINUTE | 分钟 |
SECOND | 秒钟 |
MILLISECOND | 亳秒 |
HOUR_OF_DAY | 以24小时为周期的小时 |
DAY_OF_WEEK | -星期的第几天,返回值范围1-7,星期日为第1天,星期一为第2天,以此类推 |
DAY_OF_MONTH | -个月中的第几天,从1开始 |
DAY_OF_YEAR | -年中的第几天 |
WEEK_OF_MONTH | -月中第几个星期 |
WEEK OF YEAR | -年中第几个星期 |
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));//2022
System.out.println(calendar.get(Calendar.DATE));//10(10号)
System.out.println(calendar.get(Calendar.HOUR));//10(12小时为周期)
System.out.println(calendar.get(Calendar.MINUTE));//41(分钟)
System.out.println(calendar.get(Calendar.SECOND));//26(秒)
System.out.println(calendar.get(Calendar.MILLISECOND));//356毫秒(指的是当前时间的毫秒数)
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));//22(24小时为周期)
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//6(星期日为1,以此类推)
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//10(一个月中的第几天)
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));//161(一年中的第几天)
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));//2(一个月中的第几周)
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));//24(一年中的第几周)
二add与roll的区别
roll以日为单位增加,不会超出当前月,以月为单位不会超过当前年,以年为单位增加,会一直累加
calendar.add(Calendar.DATE,111);//以日为单位,增加111天
System.out.println(calendar.get(Calendar.DATE));//29(29号)
System.out.println(calendar.get(Calendar.MONTH));//9(9月)
calendar.roll(Calendar.DATE,111);
System.out.println(calendar.get(Calendar.DATE));//1(1号)
System.out.println(calendar.get(Calendar.MONTH));//5(6月)
三 指定某一时间点
/**设置某一时间点,calendar默认规则为设置哪个,哪个生效,
没有设置的还是当前时间的数值,例如小时显示23,没有清零,23点则是当前时间的小时*/
calendar.set(1999, 1, 20);
System.out.println(calendar.get(Calendar.DATE));//20
System.out.println(calendar.get(Calendar.MONTH));//1
System.out.println(calendar.get(Calendar.YEAR));//1999
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));//23
四 样式格式化
将calendar类转化为date再进行格式化
Date time = calendar.getTime();
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(time));//2022-06-10
五 时间的比较
public boolean after(Object when)//是否在某个时间之后
public boolean before(Object when)//是否在某个时间之前
public int compareTo(Calendar anotherCalendar)//与另一个时间相比