2012-12-03 68 views
0

cal.set(Calendar.MONTH,-6);給了我多年的一個半回的日期上時,12月3日2012年日曆類算術異常

它給了日2 2011年7月

運行,請誰能告訴我發生了什麼事?

+1

你期望它做什麼? (你有什麼文件建議這是正確的做法?)你究竟在努力實現什麼? –

+0

您可能想使用'cal.add(Calendar.MONTH,-6)'而不是'cal.set(...)'。 – Jesper

回答

0

按照它的樣子,您將月份設置爲相對於2012年的-6。並且假設0表示1月,-6表示上一年的7月...。

'設置'操作設置指定字段。它不增加或減少字段。


強制性建議...使用喬達時間。

0

cal.set()設置相對於當前年份的月份。由於當前是2012年,因此-6需要6個月,即2011年7月。 對於正確的行爲,請使用cal.add(Calendar.MONTH,-6)或cal.set(Calendar.MONTH,6)