java.time.chrono.JapaneseDate
Вам не нужна внешняя зависимость для японского календаря.Он встроен в класс JapaneseDate
.
Осторожно: Только самые последние версии Java знают о новой Reiwa эра .
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("GGGGGyyMMdd", Locale.JAPANESE);
LocalDate isoDate = LocalDate.parse("2019-05-01");
JapaneseDate japaneseDate = JapaneseDate.from(isoDate);
System.out.println(japaneseDate.format(dateFormatter));
Выводиз этого фрагмента на Java 11.0.3 есть:
R010501
Пять шаблонных букв G
дают узкую форму эпохи, всего одну букву (здесь R
для Рейвы).
На Java 9.0.4 я получил H310501
.Таким образом, кажется, что он будет работать правильно, если вы сможете обновить Java.Мено Хохшильд сообщает в комментарии, что он получил правильный результат на Java 8u212, поэтому вам может не потребоваться обновление до новой основной версии, если только у вас есть новейшее незначительное обновление в основной версии.Я не знаю, есть ли способ обновить только данные календаря в более старой версии Java, это может быть еще одна вещь для расследования.
Кстати, не используйте SimpleDateFormat
и Date
.Эти классы плохо разработаны (первые особенно печально известны) и давно устарели.Используйте java.time, современный Java API даты и времени.С ним гораздо приятнее работать.
Ссылка: Учебное пособие по Oracle: Дата и время , объясняющее использование if java.time.