Calendar类
Calendar类是一个抽象类,它为特定瞬间与 YEAR 、 MONTH 、 DAY_OF—MONTH 、 HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期) 提供了一些方法。
创建 Calendar 对象不能使用 new 关键字,因为 Calendar 类是一个抽象类,但是它提供了一个getInstance() 方法来获得 Calendar 类的对象。 getInstance() 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。
Calendar类型常见方法
1.add()
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-ss hh:mm:ss");//改变所输出的日期为中式的
Calendar c=Calendar.getInstance();
c.add(Calendar.YEAR,0);//年+0
c.add(Calendar.MONDAY,1);//月+1
c.add(Calendar.DATE,1);//日+1
System.out.println(format.format(c.getTime()));
当然如果是不想要所输出不是中式的,就这样。
运行结果:
Calendar c=Calendar.getInstance();
c.add(Calendar.YEAR,0);//年+0
c.add(Calendar.MONDAY,1);//月+1
c.add(Calendar.DATE,1);//日+1
System.out.println(c.getTime());
运行结果:
2.get()
Calendar c=Calendar.getInstance();
c.get(Calendar.YEAR);//获取年
c.get(Calendar.MONDAY);//获取月
c.get(Calendar.DATE);//获取日
System.out.println(c.getTime());
如果想要其运行结果为中式的话,就用上面那个方法一样的。
运行结果:
3.after()
返回类型为boolean
Calendar calendar=Calendar.getInstance();
calendar.set(2023,1,1);
Calendar calendar1=Calendar.getInstance();
calendar1.set(2023,10,1);
if(calendar1.after(calendar)){//在calendar1在calendar之后的话,返回true,否则返回false
System.out.println("calendar1在calendar的之后");
}else{
System.out.println("calendar1在calendar的之前");
}
运行结果:
4.before()
返回类型为boolean
Calendar calendar=Calendar.getInstance();
calendar.set(2023,1,1);
Calendar calendar1=Calendar.getInstance();
calendar1.set(2023,10,1);
if(calendar1.before(calendar)){ //在calendar1在calendar之前的话返回true,否则返回false
System.out.println("calendar1在calendar的之前");
}else{
System.out.println("calendar1在calendar的之后");
}
运行结果:
5.compareTo()
返回类型为int
Calendar calendar=Calendar.getInstance();
calendar.set(2023,1,1);
Calendar calendar1=Calendar.getInstance();
calendar1.set(2023,10,1);
int result=calendar.compareTo(calendar1);//calendar与calendar1对比
if(result>0){
System.out.println("calendar1在calendar的之后");
}else if (result<0){
System.out.println("calendar1在calendar的之前");
}else {
System.out.println("calendar与calendar1时间相等");
}
6.getTime()
返回类型为Date
Calendar calendar=Calendar.getInstance();
calendar.set(2023,1,1);
System.out.println( calendar.getTime());
7.getTimeInMillis()
返回类型为long
Calendar calendar=Calendar.getInstance();
calendar.set(2023,1,1);
System.out.println( calendar.getTimeInMillis())//获取毫秒
返回值 | 方法名 | 描述 |
---|---|---|
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 的时间值,以毫秒为单位。 |