Java 日历类算术异常

Java 日历类算术异常,java,class,calendar,Java,Class,Calendar,cal.set(日历月-6)在2012年12月3日运行时给了我一年半的日期 它给出了2011年7月2日的日期 有谁能告诉我发生了什么事吗?从外观上看,您将月份设置为相对于2012年的-6。如果0表示一月,-6表示七月。。。前一年的 “设置”操作设置指定字段。它不会增加或减少字段 强制性建议。。。使用Joda时间。cal.set()设置相对于当前年份的月份。由于当前年份为2012年,因此,-6需要追溯到6个月前,即2011年7月。 要获得正确的行为,请使用cal.add(Calendar.MON

cal.set(日历月-6)在2012年12月3日运行时给了我一年半的日期

它给出了2011年7月2日的日期


有谁能告诉我发生了什么事吗?

从外观上看,您将月份设置为相对于2012年的
-6
。如果0表示一月,
-6
表示七月。。。前一年的

“设置”操作设置指定字段。它不会增加或减少字段


强制性建议。。。使用Joda时间。

cal.set()设置相对于当前年份的月份。由于当前年份为2012年,因此,-6需要追溯到6个月前,即2011年7月。
要获得正确的行为,请使用cal.add(Calendar.MONTH,-6)或cal.set(Calendar.MONTH,6)

您希望它做什么?(您有什么文档建议这样做才是正确的?)您实际上想要实现什么?您可能想使用
cal.add(Calendar.MONTH,-6)
而不是
cal.set(…)