Java——Calendar
一、介绍
java.util.Calendar类表示日历,内含有各种时间信息,以及获取,计算时间的方法。Calendar本身是一个抽象类,有直接子类GregorianCalendar,使用时需要有日历对象,可以借助子类的构造方法创建对象,也可以通过Calendar提供的静态方法getInstance日历对象。
Calendar c = Calendar.getInstance(); // 静态方法
二、getInstance
public static Calendar getInstance()
getInstance是Calendar类中的一个静态方法,用来获取它的子类GregorianCalendar对象。
三、日历字段值
接下来的三个方法都有一个整数类型参数field,这里说明一下,field用来区分当前要获取或者操作的日期时间数据的。field数据的值使用Calendar中定义的整数常量来表示,如下
Calendar.YEAR // 年 Calendar.MONTH // 月 Calendar.DAY_OF_MONTH // 月中的日期 Calendar.HOUR // 小时 Calendar.MINUTE // 分钟 Calendar.SECOND // 秒 Calendar.DAY_OF_WEEK // 星期
四、get
public int get(int field) // field 是 日历字段值
get方法用来获取指定日历字段的时间值。
案例
public class CalendarTest {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        System.out.println(year);   // 2021
    }
}
五、set
public void set(int field, int value) // field是日历字段值,value是要修改的值
set方法用来设置指定字段的时间值。
案例,例如我想把时间改为2021年5月1号
public class CalendarTest {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        c.set(Calendar.YEAR, 2021);
        c.set(Calendar.MONTH, 4);
        c.set(Calendar.DATE, 1);
        System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-1
    }
}
set方法也提供了许多重载方法,方便我们一次性设置年、月、日之类的操作,比如上面的代码可以简化为如下
public class CalendarTest {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        c.set(2021,4,1);
        System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-1
    }
}
六、add
public void add(int field, int amount) // field 是日历字段值,amount是增加/减少的值
add方法用来为某个字段增加/减少指定的值
案例,比如在当前日期的基础上增加一星期
public class CalendarTest {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        c.set(2021,4,1);
        System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-1
        c.add(Calendar.WEEK_OF_YEAR, 1);
        System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-8
    }
}
这里也可以后退时间,只需改变的值设为负数即可,如下
public class CalendarTest {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        c.set(2021,4,8);
        System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-8
        c.add(Calendar.WEEK_OF_YEAR, -1);
        System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-1
    }
}

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号