java:Calendar的add方法固定作的是加操作吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java:Calendar的add方法固定作的是加操作吗?相关的知识,希望对你有一定的参考价值。

cal.add(Calendar.DATE, -6);
cal.add(Calendar.DATE, 6);

也可以通过加负数来进行减操作?我的理解对吗?

参考技术A 根据日历的规则,为给定的日历字段添加或减去指定的时间量。例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点:
add(Calendar.DAY_OF_MONTH, -5)
参考技术B 是这样的。 参考技术C 当然可以啊,-6就是6天之前。
这种问题楼主可以自己手写测试一下的

Calendar 中add() 的 roll() 方法的区别

Calendar c = Calendar.getInstance();
c.set(2017,0,7,15,40);
System.out.println("now day: " + c.getTime());
c.roll(c.DATE, 35);
System.out.println("roll 35 day: " + c.getTime());

运行结果:

now day: Sat Jan 07 15:40:20 CST 2017
roll 35 day: Wed Jan 11 15:40:20 CST 2017

 

此时可以看到 月份不会改变,而是在日期上滚动35天后从7号改变为了11号。(由于1月有31天当滚动到31日后会从1号开始计时)

Calendar c = Calendar.getInstance();
c.set(2017,0,7,15,40);
System.out.println("now day: " + c.getTime());
c.add(c.DATE, 35);
System.out.println("add 35 day: " + c.getTime());

运行结果:

now day: Sat Jan 07 15:40:04 CST 2017
add 35 day: Sat Feb 11 15:40:04 CST 2017

此时可以看到月份由1月变化到了2月,当添加天数的时候,1月份以后填满则会填充到二月份。

add和roll的却别就在于此,roll只是单纯的在日期上作出滚动,不会影响年、月。add则会像我们自然处理时间一样,1月走完了,自然过渡到2月。

 

以上是关于java:Calendar的add方法固定作的是加操作吗?的主要内容,如果未能解决你的问题,请参考以下文章

java-Calendar类+

如何设置警报以在固定时间正确触发?

Calendar的add()方法介绍

java中表示当前日期的前5年内的随机日期怎么表示

calendar 当前时间加一天怎么做? java

calendar 当前时间加一天怎么做? java