java.time.format.FormatStyle で Locale に従った日付表記を試してみる。
LocalDate.now().format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).withLocale(new Locale("ja", "JP"))); LocalDate.now().format(DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG).withLocale(new Locale("ja", "JP"))); LocalDate.now().format(DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(new Locale("ja", "JP"))); LocalDate.now().format(DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT).withLocale(new Locale("ja", "JP")));
4通りある。
これを、 Locale( 言語、国 ) を指定して標準出力してみると、、
--- FormatStyle.FULL --- ja JP → 2017年3月8日 en US → Wednesday, March 8, 2017 en UK → Wednesday, March 8, 2017 zh CN → 2017年3月8日 星期三 zh TW → 2017年3月8日 星期三 ko KR → 2017년 3월 8일 수요일 ru RU → 8 марта 2017 г. --- FormatStyle.LONG --- ja JP → 2017/03/08 en US → March 8, 2017 en UK → March 8, 2017 zh CN → 2017年3月8日 zh TW → 2017年3月8日 ko KR → 2017년 3월 8일 (수) ru RU → 8 марта 2017 г. --- FormatStyle.MEDIUM --- ja JP → 2017/03/08 en US → Mar 8, 2017 en UK → Mar 8, 2017 zh CN → 2017-3-8 zh TW → 2017/3/8 ko KR → 2017. 3. 8 ru RU → 08.03.2017 --- FormatStyle.SHORT --- ja JP → 17/03/08 en US → 3/8/17 en UK → 3/8/17 zh CN → 17-3-8 zh TW → 2017/3/8 ko KR → 17. 3. 8 ru RU → 08.03.17
en US(米国)も en UK も 変わらない。
FormatStyle.MEDIUM と FormatStyle.SHORT → 中国と 微妙な扱いの台湾、違う!!
(この差にあまり触れたくない)