Calendar日历类型常见方法:
- 概括:
- 1.get( )方法
- 2、set( ) 设置时间
- 3、常用的add方法
- 4、after()方法表示的时间是否在指定时间之后, before( ) 方法则之前, 返回判断结果
- 4.1、compareTo比较器
概括:
Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
1.get( )方法
@Testpublic void getCalendar(){Calendar cal=Calendar.getInstance();//获取年System.out.println("年\t" + cal.get(Calendar.YEAR));//获取月System.out.println("月\t" + (cal.get(Calendar.MONTH)+1)); //月份从下标0开始 所以+1//获取日System.out.println("日\t" + cal.get(Calendar.DAY_OF_MONTH));//获取时System.out.println("时\t" + cal.get(Calendar.HOUR_OF_DAY));//获取分System.out.println("分\t"+ cal.get(Calendar.MINUTE));}
运行效果如下:
年 2023
月 11
日 23
时 11
分 42
2、set( ) 设置时间
@Testpublic void setCalendar(){Calendar cal=Calendar.getInstance();System.out.println("当前时间"+cal.getTime());cal.set(2023,11,11);//设置日期System.out.println("set设置的时间"+cal.getTime());//当读赋值 设置年月日...Calendar cal1=Calendar.getInstance();cal1.set(Calendar.YEAR,2022);cal1.set(Calendar.MONTH,12);cal1.set(Calendar.DATE,12);System.out.println("set分别赋值的时间"+cal1.getTime());}
运行效果:
当前时间Fri Nov 24 15:58:27 CST 2023
set设置的时间Mon Dec 11 15:58:27 CST 2023
set分别赋值的时间Thu Jan 12 15:58:27 CST 2023
3、常用的add方法
@Testpublic void addCalendar(){Calendar cld=Calendar.getInstance();cld.set(2023,11,11);//设置日期cld.add(Calendar.YEAR,1); //增加一年System.out.println(cld.getTime());}
效果如下:
Wed Dec 11 16:02:05 CST 2024
4、after()方法表示的时间是否在指定时间之后, before( ) 方法则之前, 返回判断结果
@Testpublic void afterCalendarBefore() {// 获取当前时间Calendar cld = Calendar.getInstance();// 设置指定时间cld.set(2024, 12, 12);Calendar cld2 = Calendar.getInstance();cld2.set(2023, 12, 12);// 获取指定时间的字符串String time1 = cld.get(Calendar.YEAR) + "-" + cld.get(Calendar.MONTH) + "-" + cld.get(Calendar.DAY_OF_MONTH);String time2 = cld2.get(Calendar.YEAR) + "-" + cld2.get(Calendar.MONTH) + "-" + cld2.get(Calendar.DAY_OF_MONTH);// 判断cld是否在cld2之后 反则之前if (cld.after(cld2)) {System.out.println("cld日期\t" + time1 + "在cld2日期\t" + time2 + "之后");}else if(cld.before(cld2)) {System.out.println("cld日期\t" + time1 + "在cld2日期\t" + time2 + "之前");}}
效果如下:
cld日期 2025-0-12在cld2日期 2024-0-12之后
4.1、compareTo比较器
使用Calendar的compareTo()方法:Calendar类实现了Comparable接口,因此可以直接使用compareTo()方法来比较两个Calendar对象的日期和时间。该方法返回一个整数,表示两个Calendar对象的比较结果。
@Testpublic void compareTo(){// 创建两个日历对象Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();// 设置日历2的日期为2023年10月12日cal2.set(2023,10,12);// 比较两个日历对象的日期大小int result = cal1.compareTo(cal2);// 根据比较结果输出信息if (result < 0) {System.out.println(cal1.getTime() + " 在 " + cal2.getTime() + " 之前");} else if (result > 0) {System.out.println(cal1.getTime() + " 在 " + cal2.getTime() + " 之后");} else {System.out.println(cal1.getTime() + " 与 " + cal2.getTime() + " 相同");}}
输出结果如下:
Fri Nov 24 19:07:32 CST 2023 在 Sun Nov 12 19:07:32 CST 2023 之后