java 常用类库之 Calendar

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相同。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值