✨前言✨
本片文章,主要在于了解Calendar类,及对它常用方法的运用

🍒欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁
🍒博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言

@

目录

  • 🍊 Calendar类
  • 🍊 Calendar类常用方法
  • 🍊 Calendar类对象字段类型
  • 🍊 Calendar类常用方法代码演示

🍊 Calendar类

  Calender 是日历类 在Date后出现 替换掉了许多Date的方法该类将 所有可能用到的时间信息风筝为静态成员变量 方便获取 日历类就是方便获取各个时间属性的

  java.util.caLendar类:日历类:
   Calendar 类是一个抽象类,它为特定瞬间与 YEAR、MONTH、DAY_OF—MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期) 提供了一些方法\

  创建 Calendar 对象不能使用 new 关键字,因为 Calendar 类是一个抽象类,但是它提供了一个 getInstance() 方法来获得 Calendar类的对象。getInstance() 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。

Calendar c = Calendar.getInstance();//默认是当前日期

  另外Calendar类是抽象类无法实例化,但是它有实现类所以可以通过创建子类初始化Calendar对象

////创建一个代表2023年11月24日的Calendar对象Calendar c1= new GregorianCalendar(2023, 11, 24);

🍊 Calendar类常用方法

返回值方法名描述
voidadd(int field, int amount)根据日历的规则,为给定的日历字段添加或减去指定的时间
booleanafter(Object when)判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。
booleanbefore(Object when)判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。
intcompareTo(Calendar ca)比较两个 Calendar 对象表示的时间值
voidset(int field, int value)将给定的日历字段设置为给定值。
intget(int field)返回给定日历字段的值。
DategetTime()返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
longgetTimeInMillis()返回此 Calendar 的时间值,以毫秒为单位。

🍊 Calendar类对象字段类型

Calendar类中用以下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想

常量描述
Calendar.YEAR年份
Calendar.MONTH月份
Calendar.DATE日期
Calendar.DAY_OF_MONTH日期,和上面的字段意义完全相同
Calendar.HOUR12小时制的小时
Calendar.HOUR_OF_DAY24小时制的小时
Calendar.MINUTE分钟
Calendar.SECOND
Calendar.DAY_OF_WEEK星期几

🍊 Calendar类常用方法代码演示

Set()设置

Calendar c1 = Calendar.getInstance();

调用:

public final void set(int year,int month,int date)//把Calendar对象c1的年月日分别设这为:2009、6、12c1.set(2023, 11, 25);

利用字段类型设置
如果只设定某个字段,例如日期的值,则可以使用如下set方法:

public void set(int field,int value)//把 c1对象代表的日期设置为10号,其它所有的数值会被重新计算c1.set(Calendar.DATE,11);//把c1对象代表的年份设置为2023年,其他的所有数值会被重新计算c1.set(Calendar.YEAR,2008);//其他字段属性set的意义以此类推

Add()设置

Calendar c1 = Calendar.getInstance();
//把c1对象的日期加上10,也就是c1也就表示为10天后的日期,//其它所有的数值会被重新计算c1.add(Calendar.DATE, 10);//把c1对象的日期减去10,也就是c1也就表示为10天前的日期,//其它所有的数值会被重新计算c1.add(Calendar.DATE, -10);//其他字段属性的add的意义以此类推

compareTo()比较设置

// 初化Calaendar对象Calendar future = Calendar.getInstance();future.set(2021, 2, 2);Calendar calendar = Calendar.getInstance();calendar.set(2011, 2, 1);// compareTo比较器int i = future.compareTo(calendar);if (i > 0) {    System.out.println("future日期" + futureStr + ",在calendar日期" +                       calendarStr + "之后"); // <--- 输出这个} else if (i < 0) {    System.out.println("future日期" + futureStr + ",在calendar日期" +                       calendarStr + "之前");} else {    System.out.println("相等");}//输出为://future日期2021-2-2,在calendar日期2011-2-1之后

after(),before()设置

//获取以上指定日期的年月日String futureStr = future.get(Calendar.YEAR) + "-" + future.get(Calendar.MONTH) +    "-" + future.get(Calendar.DAY_OF_MONTH);String calendarStr = calendar.get(Calendar.YEAR) + "-" + calendar.get(Calendar.MONTH) +    "-" + calendar.get(Calendar.DAY_OF_MONTH);    // 判断此 future 表示的时间是否在指定 calendar 表示的时间之后,返回判断结果。if (future.after(calendar)) {    System.out.println("future日期" + futureStr + ",在calendar日期" +                       calendarStr + "之后"); }//其他字段属性的before()的意义以此类推

✨最后✨

总结不易,希望uu们不要吝啬你们的👍哟(^U^)ノ~YO!!
如有问题,欢迎评论区批评指正😁