和暦変換[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
こんな感じでサンプルを書いていきたいと思ってます。
億劫になったらもうちょっと簡単に書くかも。