可以使用三种方法更改日历字段: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)这个日期。
本文介绍了如何使用Java中的Calendar API来调整日期。重点对比了roll()和add()两种方法的区别,通过实例说明了如何实现向前一周的日期调整。

被折叠的 条评论
为什么被折叠?



