Calendar中add函数和roll函数的用法及区别
2017-11-29 13:26
309 查看
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月。还有其它的方法比如setTime()等等。。
一、取某个时间点后的整点时刻。例如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月。还有其它的方法比如setTime()等等。。
相关文章推荐
- Calendar中add函数和roll函数的用法及区别
- Calendar中add函数和roll函数的用法及区别
- JAVAAPI学习之Calendar类;Calendar类set()、add()、roll()方法区别
- 指针函数和函数指针的区别(ARM2440中的用法)
- const的用法,特别是用在函数前面与后面的区别
- sql中详解round(),floor(),ceiling()函数的用法和区别?
- ceil函数和intval函数以及round函数的区别用法
- PHP易混淆函数的区别及用法汇总
- PHP易混淆函数的区别及用法汇总
- Freemarker宏和函数的用法和区别
- fprintf sprintf printf函数用法及区别
- const的用法,特别是用在函数前面与后面的区别!
- ioctlsocket()函数和WSAAsyncSelect()函数的用法及区别
- const的用法,特别是用在函数前面与后面的区别!
- java中类Calendar的roll和add的区别
- C++之普通成员函数、虚函数以及纯虚函数的区别与用法要点
- Freemarker宏和函数的用法和区别
- PHP exec 函数及 system,exec,passthru 区别用法详解
- 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法