LoginSignup
46
41

More than 5 years have passed since last update.

Javaで和暦→西暦、西暦→和暦に変換する

Posted at

Javaで和暦を使う

Java6から標準で和暦対応のCalendarクラスが提供されています。
Calendarクラスのインスタンス生成時にロケールが「ja_JP_JP」となっていれば
和暦に対応したJapaneseImperialCalendarインスタンスが生成されます。

DateFormatのパターンで元号は「G]で表します。
「G」が1~3個の場合「H」「S」のようにアルファベットで表示し、
4個の場合「平成」「昭和」のように漢字で表示します。

WarekiSample.java
//ロケールを指定してCalendarインスタンスを取得
Locale locale = new Locale("ja", "JP", "JP");
Calendar calendar = Calendar.getInstance(locale);

//calendar.getTime()で現在日時を取得して和暦にフォーマットする
DateFormat japaseseFormat = new SimpleDateFormat("GGGGy年M月d日", locale);
String dateStr = japaseseFormat.format(calendar.getTime());
System.out.println("和暦:" + dateStr);

//和暦にフォーマットした現在日時を西暦にパースする
//日付の妥当性をチェックするためsetLenient()にfalseを渡す
calendar.setLenient(false);
Date date = japaseseFormat.parse(dateStr);
System.out.println("西暦:" + date);   

実行結果

和暦:平成26年3月25日
西暦:Tue Mar 25 00:00:00 JST 2014

46
41
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
41