0

cal.set(Calendar.MONTH,-6);在 2012 年 12 月 3 日运行时,给了我一年半前的日期。

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

请问谁能告诉我发生了什么?

4

2 回答 2

0

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)

于 2012-12-03T09:07:34.380 回答
0

从外观上看,您将月份设置为-6相对于 2012 年。鉴于 0 表示 1 月,-6表示前一年的 7 月……。

'set' 操作设置指定的字段。它不会增加或减少该字段。


强制性推荐...使用 Joda Time。

于 2012-12-03T07:54:20.107 回答