もうすぐ新元号。新元号も決まり、Java Runtimeがアップデートした。
それぞれのJava Runtimeで実行してみる。
サンプルプログラム
import java.util.Date; import java.util.Locale; import java.text.DateFormat; import java.text.SimpleDateFormat; public class Wareki { public static void main(String[] args) { System.out.println(System.getProperty("java.version")); toWareki("1989/01/07"); toWareki("1989/01/08"); toWareki("2019/04/30"); toWareki("2019/05/01"); } public static void toWareki(String seireki) { try { DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.JAPAN); Date date = df.parse(seireki); SimpleDateFormat sdf = new SimpleDateFormat("GGGGyyyy.M.d", new Locale("ja", "JP", "JP")); System.out.println(seireki + ":" + sdf.format(date)); } catch (Exception e) { System.out.println("Err." + e.getMessage()); } } }
平成の変わり目をjava.versionと供に出力する。
実行
Java 6
1.6.0_45 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:平成31.5.1
Java 7
1.7.0_79 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:平成31.5.1 1.7.0_80 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:平成31.5.1
Java 8
1.8.0_191 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:平成31.5.1 1.8.0_201 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:平成31.5.1 1.8.0_211 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:令和元.5.1
Java 11
11 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:元号元.5.1 11.0.1 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:元号元.5.1 11.0.2 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:元号元.5.1 11.0.3 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:令和元.5.1
Java 12
12 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:元号元.5.1 12.0.1 1989/01/07:昭和64.1.7 1989/01/08:平成元.1.8 2019/04/30:平成31.4.30 2019/05/01:令和元.5.1
1.6、1.7は令和に対応していない。
1.8は1.8.0_211から対応している。
11は11.0.3から対応している。11は最初から新元号になることはわかっていたようで元号元と出力されている。
12は12.0.1から対応している。12も最初から元号元の表記がある。
まとめ
DotNetでは和暦の対応が急遽変更になったそうですが、Javaはそのまま元号が令和になっただけで大きな変更はなさそう。
しかし、DotNetの対応で確かにそうだなあと思ったのは、まだ元号が変わったわけではないので、現在の出力は平成31.5.1でも良いような気がする。令和になるのは令和元.5.1以降でも。
ましてや元号元.5.1なんて出力されたら、もっと困ってしまう。Java11で和暦変換していた人はどうしていたのだろうか?
同じタグの記事
- EclipseLinkでJPA
- eclipseの良く使うショートカットキー
- eclipseデフォルトの文字コード
- itext5でPDFを暗号化する
- Java DateFormat
- Java8で指定回数繰り返し
- Java9でJAXB
- JavaでZip圧縮
- javaでイメージフォーマット変換
- javaでダミー画像作成
同じカテゴリの記事