将 1 年添加到 Calendar 对象时,第一次迭代会添加 0 年,即使它应该添加 1。每个后续调用都会添加 1 年,这是应该的。例如:
calendarObject.add(Calendar.YEAR,1); //This actually adds nothing
calendarObject.add(Calendar.YEAR,1); // now it works.
注意: calendarObject 已设置为 1995 年,没有设置其他属性。
将 1 年添加到 Calendar 对象时,第一次迭代会添加 0 年,即使它应该添加 1。每个后续调用都会添加 1 年,这是应该的。例如:
calendarObject.add(Calendar.YEAR,1); //This actually adds nothing
calendarObject.add(Calendar.YEAR,1); // now it works.
注意: calendarObject 已设置为 1995 年,没有设置其他属性。
它工作正常。
import java.util.Calendar;
public class CalTest
{
public static void main(String[] args)
{
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1995);
System.out.println(cal.get(Calendar.YEAR));
cal.add(Calendar.YEAR, 1);
System.out.println(cal.get(Calendar.YEAR));
cal.add(Calendar.YEAR, 1);
System.out.println(cal.get(Calendar.YEAR));
}
}
输出:
1995
1996
1997
注意是问题的根源。除了年份之外,您还需要设置更多的日历属性。Vikdor 的示例之所以有效,是因为他使用了返回的默认 Calendar 实例,其中填写了所有类成员。仅指定“1995”会导致奇怪的行为。