Java基础库

日期和时间类

Calender类

Calender类是一个抽象类,也是所有日历类的模板,并提供所有日历类通用的方法。他不能直接实例化,程序只能创建一个Calendar子类的实例。Java本身提供了一个GregorianCalendar类,一个代表里高利日历的子类,也就是我们常说的公历。
由于Calendar类是一个抽象类,故不能使用构造器来创建Calendar实例。但是它提供了几个静态getInstance()方法来获取Calendar实例,这些方法根据TimeZone,Locale类来获取特定的Calender,如果不指定TimeZone,Locale,则使用默认的TimeZone,Locale来获取Calender。

获取Calendar实例

//创建一个默认的Calender实例
Calendar c = Calender.getInstance();
//从Calender中获取Date对象
Date date = Calender.getTime();

从Date对象中获取Calendar实例

Calender c2 = Calender.getInstance();//由于Calendar没有构造器可以接受date对象
c2.setTime(date);	//故先得到一个Calendar实例,然后调用其setTime()方法

Calender常用方法

Calender中的类变量
field参数(public static final int )

常量 含义 日期最大值 日期最小值
Calendar.YEAR 1 292278994 1
Calendar.MONTH 2 11 0
Calendar.DATE 5 31 1
Calendar.HOUR 10 11 0
Calendar.MINUTE 12 59 0
Calendar.SECOND 13 59 0

注意,月份的最大值为11,最小值为0,故用0表示1月,1表示2月,以此类推…

获取日期

int get(int field):返回指定日历字段的值
int getActualMaximum(int field):放回给定日历字段的最大值,月份的最大值为11
int getActualMinimum(int field):返回给定日历字段的最小值,月份的最小值为0

设定日期

//设置Calendar对象的年,月,日,时,分,秒6个字段的值
void set(int year,int month,int date,int hourOfDay,int minute,int second)
void set(int year,int month,int date,int hourOfDay,int minute)
set(int year,int month,int date)
void set(int field,int value) //单独设定某个字段的值
Calendar c = Calender.getInstance();
c.set(2018,9,29,12,32,23);	//设定时间为2018-10-29,12:32:23



void add(int field,int amount):根据日历的规则,为给定的日历字段加上/减去指定的时间量
c.set(2018,9,29,12,32,23);	//设定时间为2018-10-29,12:32:23
c.add(Calendar.YEAR,-2);	//2016-10-29,12:32:23

void roll(int field,int amount);与add相似,不同处在于amount超过field能承受最大值时,add会改变其他字段,而roll不会
c.set(2018,8,15);
c.add(Calendar.MONTH,5);//2019-2-15
c.roll(Calendar.MONTH,5);//2018-2-15

日期和时间类

猜你喜欢

转载自blog.csdn.net/u012881002/article/details/84892907