8171049: Era.getDisplayName doesn't work with non-IsoChronology

Reviewed-by: rriggs
This commit is contained in:
Naoto Sato 2017-08-28 10:16:33 -07:00
parent 496b798b66
commit b474897fe2
5 changed files with 203 additions and 2 deletions

View file

@ -73,6 +73,7 @@ import java.io.ObjectStreamException;
import java.io.Serializable;
import java.time.DateTimeException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.TextStyle;
import java.time.temporal.ChronoField;
import java.time.temporal.TemporalField;
@ -253,7 +254,12 @@ public final class JapaneseEra
Objects.requireNonNull(locale, "locale");
return style.asNormal() == TextStyle.NARROW ? getAbbreviation() : getName();
}
return Era.super.getDisplayName(style, locale);
return new DateTimeFormatterBuilder()
.appendText(ERA, style)
.toFormatter(locale)
.withChronology(JapaneseChronology.INSTANCE)
.format(this == MEIJI ? MEIJI_6_ISODATE : since);
}
//-----------------------------------------------------------------------