前言
上一篇博客给小伙伴们分享了Java的Date类,这里给小伙伴们分享Java中另一个和日期时间有关的类:Calendar类。
Calendar类
Calendar类是能设置和获取日期数据的特定部分,比如说小时,日,或者分钟,还能在日期的这些部分加上或者减去值。
Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。
创建一个代表系统当前日期的Calendar对象
Calendar c = Calendar.getInstance();//默认是当前日期
创建一个指定日期的Calendar对象
使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。
//创建一个代表2015年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2015, 6 - 1, 12);
Calendar类对象字段类型
Calendar类中用以下这些常量表示不同的意义,JDK内的很多类其实都是采用的这种思想。所以我们可以学习这种写法去定义一些我们开发当中的常量。
Calendar类对象信息的设置
Set设置:
Calendar c1 = Calendar.getInstance();
调用:
public final void set(int year,int month,int date)
利用字段类型设置
如果只设定某个字段,例如日期的值,则可以使用如下set方法:
public void set(int field,int value)
把 c1对象代表的日期设置为10号,其它所有的数值会被重新计算。
c1.set(Calendar.DATE,10);
把c1对象代表的年份设置为2014年,其他的所有数值会被重新计算。
c1.set(Calendar.YEAR,2014);
其他字段属性set的意义以此类推,其他的所有数值会被重新计算。
Add设置
Calendar c1 = Calendar.getInstance();
把c1对象的日期加上10,也就是c1也就表示为10天后的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, 10);
把c1对象的日期减去10,也就是c1也就表示为10天前的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, -10);
其他字段属性的add的意义以此类推,其他的所有数值会被重新计算。
Calendar类对象信息的获得
Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);
总结
有关于Java的日期时间的类,我就分享到这里,后期有更多的新发现,我会在博客中给小伙伴们分享。