2019年4月にリリースされた、Oracle JDK 7u221, 8u211, 11.0.3以降で新しい元号に関する更新が施されています。しかしながら、Oracle JDK 6以前のJava SEバージョンはEOL (End Of Life)を迎えているため、今後、新元号に対応するための更新が実施される予定はありません。
現在、Oracle JDK 7u221, 8u211, 11.0.3より前のJava SEバージョンを利用されている場合、java.utilパッケージのDateクラスやCalendarクラス、あるいはDate and Time APIを使用して和暦元号を出力していると影響があります。
例えば、JDK 8でjava.util.Calendarクラスを利用していた場合、下記のような処理で問題が発生します。
- 和暦が含まれる日付の出力
    public static void printDate() {
        Calendar cal = Calendar.getInstance();
        cal.set(2019, Calendar.MAY, 1, 0, 0, 0);
        Date date = cal.getTime();
        Locale locale = new Locale("ja", "JP", "JP");
        DateFormat wareki = new SimpleDateFormat("GGGGyyyy年M月d日", locale);
        //令和元年5月1日と出力されることを期待しているが、平成31年5月1日が出力される。
        System.out.println(wareki.format(date));
    }
 
- 和暦が含まれる日付の解析処理
    public static void parseDate() throws ParseException {
        String date = "令和元年5月1日";
        
        Locale locale = new Locale("ja", "JP", "JP");
        DateFormat wareki = new SimpleDateFormat("GGGGyyyy年M月d日", locale);
        
        //令和元年を解析できず、ParseExceptionが発生する。
        System.out.println(wareki.parse(date));
    }
 
この場合、Oracle社とJava SE Subscriptionの有償サポートを契約した後、利用しているJava SEをOracle JDK 7u221, 8u211, 11.0.3以降にアップデートすることをご検討ください。