Java之Calendar类的使用

 转自:http://yeniu33zmz.blog.163.com/blog/static/289618482009922297751/

Calendar类被设计来取代Date类(Date类存在一些缺陷),处理日期和时间,Calendar类提供了大量访问、修改时间日期的方法

Calendar类是一个抽象类,不能用构造器来创建Calendar对象,但可以通过静态的getInstance方法获取对象。

常规用法示例:

public class TestCalendar {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Calendar c = Calendar.getInstance();
  //取出年
  System.out.println(c.get(Calendar.YEAR));
  //取出月
  System.out.println(c.get(Calendar.MONTH));
  //取出日
  System.out.println(c.get(Calendar.DATE));
  //设置年月日时分秒
  c.set(2009, 9, 29, 9, 45, 30);
  System.out.println(c.getTime());
  //将Calendar推前一年
  c.add(Calendar.YEAR, -1);
  System.out.println(c.getTime());
  //将Calendar的月,向前推8个月
  c.roll(Calendar.MONTH, -8);
  System.out.println(c.getTime());
 }

}

add(int field, int amount)功能强大,主要用于改变Calendar特定字段的值
使用规则1:当被修改的字段超出它允许的范围时,会发生进位,即上一级字段也会增大
使用规则2:如果下一级字段也需要改变,那么该字段会修正到变化的最小值(如:2009年8月31日,向前推6个月,为2009年2月28日)

roll的使用规则与add不同的是roll不会发生进位,其他的地方与add相似

Calendar具有容错性,例如传入不合法参数,设置MOUTH字段的值为13,将会导致YEAR字段加1
可以通过setLenient(false)方法关闭容错性,让他进行严格的参数检查

set方法延迟修改

使用set方法改变某个字段的值时,Calendar所代表的时间不会马上被修改,直到调用使用get,add等方法时才会重新计算时间。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值