java.util.Calendar
Calendar,翻译过来是日历。它的作用是将日期按照年、月、日、小时、分钟、秒、星期几等等生活常用的日期数据的方式保存起来。这样,程序员就可以直接获得一个日期的很多数据,同时我们也可以对其中的某一项进行修改,Calendar会自动修改其他的数值,就比如说:如果一个Calendar,分钟是59,小时是12,如果我们在分钟上加一,分钟会变成0,小时会自动变成13。Calendar保存日期的原理,其实就是将日期保存在一个int型数组fields中,不同下标存放不同的日期数据,比如说下标1的位置存着第几年,下标2的位置存放着第几月,等等。我们并不需要记住这些下标数字,Calendar通过静态常量存储了这些下标数字,例如: Calendar.YEAR存放着1, Calendar.MONTH 存放着2。
Calendar getInstance()
对于实例一个Calendar对象,我们一般使用getInstance(),而不是new关键字。目的是通过getInstance()可以获得当地的时区,这样以便对不同的地区使用不同的日历,更有利于国际化。
int get(int filed)
get用于获取日期数据。参数filed指定哪种日期数据,年->1, 月->2, ...
例如,假设我们实例化了一个Calendar,名字叫cal,
如果想要获取cal中的年:cal.get(1) 或 cal.get(Calendar.YEAR) 。
如果想要获取cal中的月:cal.get(2) 或 cal.get(Calendar.MONTH)。
void set(int filed, int value)
set用于更新日期数据。参数filed指定哪种哪种日期数据。
和get的使用方法类似,对于cal,如果想要设置日期为2020年10月11日,则:
cal.set(Calendar.YEAR, 2020);
cal.set(Calendar.MONTH, 10);
cal.set(Calendar.DAY_OF_MONTH, 11);
除此之外,还可以用Calendar为我们准备的另一种set的重载方法。
cal.set(2020, 10, 11);
set的重载方法有:
void set(int year, int month, int date);
void set(int year, int month, int date, int hourOfDay, int minute);
void set(int year, int month, int date, int hourOfDay, int minute, int second);
Date getTime()
将Calendar对象转换成Date对象。
void setTime(Date date)
将当前Calendar对象的日期设置为date表示的日期(Date转换成Calendar)。
void add(int field, int amout)
根据日历规则,在指定数据上增加指定的量。
boolean after(Calendar when)
判断当前Calendar是否晚于指定Calendar。
boolean before(Calendar when)
判断当前Calendar是否早于指定Calendar。
int getActualMaximum(int field)
获取指定字段的最大值(根据日历规则)。例如,如果有一个Calendar对象cal,它的“月”字段是1月,则cal.getActualMaximum(Calendar.DAY_OF_MONTH)会返回31。如果另一个Calendar对象cal2,它的“月”字段是4月,则cal2.getActualMaximum(Calendar.DAY_OF_MONTH)会返回30。可以用它来计算每个月的天数。
int getActualMinimum(int field)
获取指定字段的最小值(根据日历规则)。使用方法与getActualMaximum相同。