Calender常见方法使用

✨前言✨
本片文章,主要在于了解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类常用方法

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

🍊 Calendar类对象字段类型

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

常量 描述
Calendar.YEAR 年份
Calendar.MONTH 月份
Calendar.DATE 日期
Calendar.DAY_OF_MONTH 日期,和上面的字段意义完全相同
Calendar.HOUR 12小时制的小时
Calendar.HOUR_OF_DAY 24小时制的小时
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、12
c1.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!!
如有问题,欢迎评论区批评指正😁

posted @ 2023-11-25 11:51  于山上之明月  阅读(82)  评论(0编辑  收藏  举报