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!!
如有问题,欢迎评论区批评指正😁