cal.set(Calendar.MONTH,-6);
在 2012 年 12 月 3 日运行时,给了我一年半前的日期。
它给出了 2011 年 7 月 2 日的日期。
请问谁能告诉我发生了什么?
cal.set() sets the month relative to the current year. As the current year is 2012, -6 takes it to 6 months back i.e. July 2011. For proper behaviour, use either cal.add(Calendar.MONTH,-6) or cal.set(Calendar.MONTH,6)
从外观上看,您将月份设置为-6
相对于 2012 年。鉴于 0 表示 1 月,-6
表示前一年的 7 月……。
'set' 操作设置指定的字段。它不会增加或减少该字段。
强制性推荐...使用 Joda Time。