-3

所以假设我有这个代码:

//someParameterizedDate = New Years Eve 2011
Calendar cal = new GregorianCalendar();
cal.setTime(someParameterizedDate);
cal.roll(Calendar.DAY_OF_YEAR, 1);

现在日历是否等于 2012 年 1 月 1 日?我发现所有的 JavaDocs 有点混乱。

4

1 回答 1

4

java.util.日历

roll(f, delta) 将 delta 添加到字段 f 而不更改更大的字段。这相当于调用 add(f, delta) 并进行以下调整:

滚动规则。调用后较大的字段保持不变。较大的字段表示较大的时间单位。DAY_OF_MONTH 是比 HOUR 更大的字段。

你滚动DAY_OF_YEAR哪个意味着它不会影响MONTH或者YEAR哪个是更大的单位

所以基本上,你应该让你到 2011 年 12 月 1 日

add如果您希望到 2012 年 1 月 1 日,您可以使用

于 2012-07-24T21:01:30.100 回答