<i18n dev> The first year skipped when using UTC time for "jdk.calendar.sypplemental.era" system property

Mitsuru Matsushima m-matsushima at bk.jp.nec.com
Thu Jun 22 12:50:53 UTC 2017


Hi,

I found an issue about "jdk.calendar.sypplemental.era" system property.

According toJavadoc of JapaneseImperialCalendar, the system property can specify "since" parameter as UTC time.

However, on using UTC time, the first year of new era is skipped.
The new era start with a second year as follow:

NewEra2年1月1日 12:0:0.0
平成30年12月31日 11:59:59.999999999

TEST CODE:
=======================================
    public static void main(String... args) {
        // set supplemental era
        final long since = ZonedDateTime
                .of(2019, 1, 1, 0, 0, 0, 0, ZoneId.of("Asia/Tokyo"))
                .toInstant().toEpochMilli();
        System.setProperty(
                "jdk.calendar.japanese.supplemental.era",
                "name=NewEra,abbr=N.E,since=" + since + "u");
        final DateTimeFormatter fmtrFull = DateTimeFormatter.ofPattern("GGGGy年M月d日 h:m:s.n")
                .withChronology(JapaneseChronology.INSTANCE)
                .withLocale(new Locale("ja", "JP", "JP"));
        IntStream.rangeClosed(0, 1)
                .mapToObj(h -> LocalDateTime.of(2019, 1, 1, 0, 0).minusNanos(h))
                .map(fmtrFull::format)
                .forEach(System.out::println);
    }
=======================================

TEST ENVIRONMENT: 
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+174)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+174, mixed mode)

---
Mitsuru



More information about the i18n-dev mailing list