可以使用三种方法更改日历字段:set()
、add()
和 roll()
。其中,set()方法用来设置日历的字段值。本次主要记录一下add()方法和roll()方法。
一、roll()方法
帮助文档中:[roll(f, delta)
将 delta
添加到 f
字段中,但不更改更大的字段。]
我遇到的问题:当前日期为2008-05-01,我想把日历调整为一周前的日期(2008-4-24)。一开始调用的是roll()方法,但得到的结果为:2008-05-29。
代码:calendar.roll(Calendar.WEEK_OF_MONTH, -1);
方法中要滚动的字段为week,所有月份不会发生改变。(但为什么会出现2008-05-29这个日期还不是太清楚)
二、add()方法
帮助文档中:[add(f, delta)
将 delta
添加到 f
字段中。 ]
[ Add 规则 1。调用后 f
字段的值减去调用前 f
字段的值等于 delta
,以字段 f
中发生的任何溢出为模。溢出发生在字段值超出其范围时,结果,下一个更大的字段会递增或递减,并将字段值调整回其范围内。]
现在将[ calendar.roll(Calendar.WEEK_OF_MONTH, -1); ]修改为:[ calendar.add(Calendar.WEEK_OF_MONTH, -1); ]
这样就能正确得出:(2008-4-24)这个日期。