Calendarオブジェクトを作成し、それを特定のスタイルでフォーマットすると、非常に奇妙な動作が発生しました。
コードに話をさせましょう:
public class Test
{
public static void main(String[] args)
{
SimpleDateFormat frmt = new SimpleDateFormat();
frmt.applyPattern("yyyy-MM-dd");
GregorianCalendar date = new GregorianCalendar(2012,1,1);
System.out.println(frmt.format(date.getTime()));
}
}
出力は次のとおりです。
2012-02-01
もちろん、期待される出力は次のとおりです。
2012-01-01
私は何が間違っているのですか?