Calendar中add函数和roll函数的用法及区别
2016-08-13 14:07
831 查看
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月。
http://blog.sina.com.cn/s/blog_62c89b450100sau9.html
一、取某个时间点后的整点时刻。例如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月。
http://blog.sina.com.cn/s/blog_62c89b450100sau9.html
相关文章推荐
- Calendar中add函数和roll函数的用法及区别
- Calendar中add函数和roll函数的用法及区别
- 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法
- 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法
- php中print_r、var_dump和var_export几个函数的用法区别
- SQL 中详解round(),floor(),ceiling()函数的用法和区别?
- C语言函数型指针和指针型函数的用法和区别
- 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法
- Oracle的substr函数简单用法 与substring区别
- oracle 截取函数 trunc (直接截取不做进位处理)、round(截取时要进位) 的用法与区别
- 析构函数和虚函数的用法和作用指针与引用的区别
- ruby gsub gsub! chomp chomp! 以及所有类似函数用法及区别
- 引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法(新手推荐)
- C++输入函数的用法和区别
- php调用外部命令函数system,exec,passthru的区别和用法详解
- 指针函数和函数指针的区别(ARM2440中的用法)
- opengl红宝书关于name stack操作两个函数glLoadName,glPushName的用法区别
- Oracle translate 函数的用法, 以及和replace的区别
- PHP exec 函数及 system,exec,passthru 区别用法详解
- Oracle translate 函数的用法, 以及和replace的区别