Java Calendar类

Calendar类
我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。
Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。
创建一个代表系统当前日期的Calendar对象:Calendar c = Calendar.getInstance();//默认是当前日期
创建一个指定日期的Calendar对象,使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。
//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);
。。。
Calendar类对象字段类型http://www.iis7.com/a/lm/zzxzgj/
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);

转载于:https://my.oschina.net/u/4039585/blog/2986560

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值