cal.set(Calendar.MONTH,-6);
2012年12月3日に実行されたときに1年半前の日付を教えてくれました。
それは2011年7月2日の日付を与えました。
何が起こったのか誰か教えてもらえますか?
cal.set()は、現在の年を基準にした月を設定します。現在の年は2012年であるため、-6は6か月前、つまり2011年7月になります。適切な動作を得るには、cal.add(Calendar.MONTH、-6)またはcal.set(Calendar.MONTH、6)のいずれかを使用します。
見た目では、月-6
を 2012 からの相対値に設定しています。そして、0 が 1 月を-6
意味するとすると、前年の 7 月を意味します。
「設定」操作は、指定されたフィールドを設定します。フィールドをインクリメントまたはデクリメントしません。
必須の推奨事項 ... Joda Time を使用します。