日历卷将包围给定的年份,月份等?

时间:2012-07-24 20:58:00

标签: java calendar utility

所以让我说我有这个代码:

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

日历现在是否等于2012年1月1日?我发现所有的JavaDoc都有点令人困惑。

1 个答案:

答案 0 :(得分:4)

java.util.Calendar

  

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

     

滚动规则。通话结束后,较大的字段不变。一个更大的领域   代表更大的时间单位。 DAY_OF_MONTH是一个比字段大的字段   HOUR。

您使用DAY_OF_YEAR滚动,这意味着它不会影响较大单位的MONTHYEAR

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

如果您希望将其发送至2012年1月1日,则可以使用add