首页 > 其他 > 详细

Calendar中add函数和roll函数的用法及区别

时间:2015-02-10 15:36:05      阅读:277      评论:0      收藏:0      [点我收藏+]

Calendar中add()和roll()函数的用法

一、取某个时间点后的整点时刻。例如1984年7月7日15:23:05后的整点时刻即为1984-07-07 16:00:00。

实现如下:

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.HOUR_OF_DAY, 1);//小时上加1

calendar.set(Calendar.MINUTE, 0);//分钟设为0

calendar.set(Calendar.SECOND, 0);//秒钟设为0

二、取某个日历之前的某个月。例如要取2002年1月12号之前1个月的时间,应该是2001年12月12日。

Calendar calendar = Calendar.getInstance();

calendar.set(2002, 0, 12);//代表2002年1月12日

calendar.add(Calendar.MONTH, -1);//这样就将日期设置成了2001年12月12日。

System.out.println(calendar.getTime().toString());

但是这种情况如果用roll()来实现。如以下代码:

Calendar calendar = Calendar.getInstance();

calendar.set(2002, 0, 12);//代表2002年1月12日

calendar.roll(Calendar.MONTH, -1);//这样就将日期设置成了2002年12月12日。

System.out.println(calendar.getTime().toString());

结论:roll()函数处理,只会比相应的字段进行处理,不会智能的对其它字段也进行逻辑上的改变。但是add()函数会在逻辑上改变其它字段,使结果正确。

注:Calendar中的Month是从0-11的,0代表1月,11代表12月。


Calendar中add函数和roll函数的用法及区别

原文:http://my.oschina.net/tingzi/blog/377271

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!