和暦
気になってちょっと試してみた。
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()の使用を推奨。