0

将 1 年添加到 Calendar 对象时,第一次迭代会添加 0 年,即使它应该添加 1。每个后续调用都会添加 1 年,这是应该的。例如:

calendarObject.add(Calendar.YEAR,1); //This actually adds nothing    
calendarObject.add(Calendar.YEAR,1); // now it works.

注意: calendarObject 已设置为 1995 年,没有设置其他属性。

4

2 回答 2

2

它工作正常。

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
于 2012-09-27T02:22:15.833 回答
1

注意是问题的根源。除了年份之外,您还需要设置更多的日历属性。Vikdor 的示例之所以有效,是因为他使用了返回的默认 Calendar 实例,其中填写了所有类成员。仅指定“1995”会导致奇怪的行为。

于 2012-09-27T02:25:29.220 回答