和暦変換[Java]

Java1.6になって和暦変換が簡単にできるようになりました。
topicとして非常に気になったのでサンプルを作りました。

ポイント

  • Localeの設定
    • 言語、国、バリアントを"JP"に設定する。
  • Calendar.ERAに和暦に対応した数値を設定する。
    • 対応する数値は以下の通り
元号 数値
明治 1
大正 2
昭和 3
平成 4
  • 日付のフォーマット
    • "GGGGyy年MMMMd日"→「平成yy年mm月d日」
    • "Gyy/M/d"→「Hyy/m/d」
サンプル
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

public class DispJapaneseCalendar {
    public static void main(String[] args) {

    int year = 21;
    int month = 10;
    int day = 8;

    //ロケールの設定
    Locale.setDefault(new Locale("ja", "JP", "JP"));

    //日付のフォーマット
    SimpleDateFormat warekiFormat = new SimpleDateFormat("GGGGyy年MMMMd日");
    SimpleDateFormat slushedFormat = new SimpleDateFormat("Gyy/M/d");

    Calendar cal = Calendar.getInstance();

    //ERAの設定
    cal.set(Calendar.ERA, 4);

    cal.set(year, month - 1, day);
    System.out.println(warekiFormat.format(cal.getTime()));
    System.out.println(slushedFormat.format(cal.getTime()));

    }
}
実行結果
平成21年10月8日
H21/10/8

こんな感じでサンプルを書いていきたいと思ってます。
億劫になったらもうちょっと簡単に書くかも。