Calendar类用于日期和时间子段的操作,它可以通过特定的方式设置和读取日期的特定部分,比如年、月、日、时等。Calendar类是一个抽象类,不可以被实例化,在程序中需要调用一个静态方法来得到一个Calendar对象,然后调用其对应的方法,具体示例如下:
Calendar calendar = Calendar.getInstance();
同时Calendar类为操作时间和日期提供了大量的方法,下边列举一些方法
int get(int field) | 返回指定日历字段的值 |
void add(int field,int amount) | 根据日历规则,为指定的日历字段增加或减少指定的时间量 |
void set(int field,int value) | 为指定的日历字段设置指定值 |
void set(int year,int month,int date) | 设置Calendar对象的年月日三个字段的信息 |
void set(int year,int month,int date,int hourOfDay,int minute,int second) | 设置Calendar对象的年月日时分秒六个字段的信息 |
接下来通过一个程序来学习上面的方法:
import java.util.*;
public class Main{
public static void main(String[] args)throws Exception{
Calendar d1=Calendar.getInstance();
int year=d1.get(Calendar.YEAR);
int month=d1.get(Calendar.MONTH)+1;
int date=d1.get(Calendar.DATE);
int hour=d1.get(Calendar.HOUR);
int minute=d1.get(Calendar.MINUTE);
int second=d1.get(Calendar.SECOND);
System.out.println("当前时间为:"+year+"年"+month+"月"+date+"日"+hour+"时"+minute+"分"+second+"秒");
}
}
!!!!需要注意的是在获得月份month时需要+1,,原因是月份的起始值时0而不是1
另外结合set方法和add方法接着以程序为例:
import java.util.*;
public class Main{
public static void main(String[] args)throws Exception{
Calendar d1=Calendar.getInstance();
d1.set(2018,7,12);
d1.add(Calendar.DATE, 30);
int year=d1.get(Calendar.YEAR);
int month=d1.get(Calendar.MONTH);
int date=d1.get(Calendar.DATE);
System.out.println("竣工时间为:"+year+"年"+month+"月"+date+"日");
}
}
上面的程序为施工30天后完工的日期;
!!!!!在set方法设置年月日时月份需要特别注意,以上面程序为例,通过set设置的是2018.7.12,但是由于月份从0开始的特殊性,计算机会自动认为输入的是2018.8.12 所以需要特别注意!!!