对于以下代码段
GregorianCalendar a = new GregorianCalendar(2009, 11, 10);
System.out.println(a.getTime()); // Thu Dec 10 00:00:00 ICT 2009
a.add(Calendar.MONTH, 1);
System.out.println(a.getTime()); // Sun Jan 10 00:00:00 ICT 2010
当我改变这条线
a.add(Calendar.MONTH, 1);
进入这一行
a.set(Calendar.MONTH, a.get(Calendar.MONTH) + 1);
它返回相同的结果
// Sun Jan 10 00:00:00 ICT 2010
如果是 2009 年 12 月,我想将其设置为月份 + 1(即一月),现在月份应该是 2009 年 1 月。但它是 2010 年 1 月。
那么,在这种情况下,set 和 add 有什么区别呢?