和暦

気になってちょっと試してみた。

Calendar c1 = Calendar.getInstance(new Locale("ja", "JP", "JP"));
Calendar c2 = Calendar.getInstance();
SimpleDateFormat f1 = new SimpleDateFormat("GGGG yyyy/MM/dd", new Locale("ja", "JP", "JP"));
SimpleDateFormat f2 = new SimpleDateFormat("GGGG yyyy/MM/dd");
System.out.println("カレンダー設定なし");
System.out.println("和暦フォーマット:" + f1.format(new Date()));
System.out.println("西暦フォーマット:" + f2.format(new Date()));
System.out.println();
System.out.println("和暦カレンダー設定");
f1.setCalendar((Calendar)c1.clone());
f2.setCalendar((Calendar)c1.clone());
System.out.println("和暦フォーマット:" + f1.format(new Date()));
System.out.println("西暦フォーマット:" + f2.format(new Date()));
System.out.println();
System.out.println("西暦カレンダー設定");
f1.setCalendar((Calendar)c2.clone());
f2.setCalendar((Calendar)c2.clone());
System.out.println("和暦フォーマット:" + f1.format(new Date()));
System.out.println("西暦フォーマット:" + f2.format(new Date()));
System.out.println();
カレンダー設定なし
和暦フォーマット:平成 24/07/26
西暦フォーマット:西暦 2012/07/26

和暦カレンダー設定
和暦フォーマット:平成 24/07/26
西暦フォーマット:平成 24/07/26

西暦カレンダー設定
和暦フォーマット:西暦 2012/07/26
西暦フォーマット:西暦 2012/07/26

SimpleDateFormat#setCalendar(Calendar)すると、そのカレンダーの日付はSimpleDateFormatによって変更されることがあるのでclone()の使用を推奨。