中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

Java Calendar类

 二九结狐六体

下载贤集网APP入驻自媒体


我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。

Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

创建一个代表系统当前日期的Calendar对象:Calendar c = Calendar.getInstance();//默认是当前日期

创建一个指定日期的Calendar对象,使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。http://www.iis7.com/a/lm/zhanqun/  IIS7站群大全

//创建一个代表2009年6月12日的Calendar对象

Calendar c1 = Calendar.getInstance();

c1.set(2009, 6 - 1, 12);

。。。

Calendar类对象字段类型

Calendar类中用一下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想

常量                                      描述

Calendar.YEAR                      年份

Calendar.MONTH              月份

Calendar.DATE                      日期

Calendar.DAY_OF_MONTH  日期,和上面的字段意义完全相同

Calendar.HOUR                  12小时制的小时

Calendar.HOUR_OF_DAY      24小时制的小时

Calendar.MINUTE              分钟

Calendar.SECOND              秒

Calendar.DAY_OF_WEEK      星期几

。。。

Calendar类对象信息的设置

Set设置

如:Calendar c1 = Calendar.getInstance();

调用:

public final void set(int year,int month,int date)

c1.set(2009, 6 - 1, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12

利用字段类型设置

如果只设定某个字段,例如日期的值,则可以使用如右set方法:public void set(int field,int value)

把 c1对象代表的日期设置为10号,其它所有的数值会被重新计算:c1.set(Calendar.DATE,10);

把c1对象代表的年份设置为2008年,其他的所有数值会被重新计算:c1.set(Calendar.YEAR,2008);

其他字段属性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);


最新回复

还没有人回复哦,抢沙发吧~

发布回复

为您推荐

热门交流