diff --git a/jdk/src/java.base/share/classes/java/time/LocalDate.java b/jdk/src/java.base/share/classes/java/time/LocalDate.java index 2d874839793..ba0fdbf3c10 100644 --- a/jdk/src/java.base/share/classes/java/time/LocalDate.java +++ b/jdk/src/java.base/share/classes/java/time/LocalDate.java @@ -81,7 +81,7 @@ import java.io.InvalidObjectException; import java.io.ObjectInputStream; import java.io.Serializable; import java.time.chrono.ChronoLocalDate; -import java.time.chrono.Era; +import java.time.chrono.IsoEra; import java.time.chrono.IsoChronology; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; @@ -732,15 +732,12 @@ public final class LocalDate * Users of this class should typically ignore this method as it exists primarily * to fulfill the {@link ChronoLocalDate} contract where it is necessary to support * the Japanese calendar system. - *
- * The returned era will be a singleton capable of being compared with the constants - * in {@link IsoChronology} using the {@code ==} operator. * - * @return the {@code IsoChronology} era constant applicable at this date, not null + * @return the IsoEra applicable at this date, not null */ @Override // override for Javadoc - public Era getEra() { - return ChronoLocalDate.super.getEra(); + public IsoEra getEra() { + return (getYear() >= 1 ? IsoEra.CE : IsoEra.BCE); } /** diff --git a/jdk/test/java/time/tck/java/time/TCKLocalDate.java b/jdk/test/java/time/tck/java/time/TCKLocalDate.java index 2d9a08f4369..6218d150241 100644 --- a/jdk/test/java/time/tck/java/time/TCKLocalDate.java +++ b/jdk/test/java/time/tck/java/time/TCKLocalDate.java @@ -102,6 +102,7 @@ import java.time.ZoneId; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.chrono.IsoChronology; +import java.time.chrono.IsoEra; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.time.temporal.ChronoField; @@ -2326,4 +2327,13 @@ public class TCKLocalDate extends AbstractDateTimeTest { return LocalDate.of(year, month, day); } + //----------------------------------------------------------------- + // getEra() + // ---------------------------------------------------------------- + @Test + public void test_getEra() { + IsoEra isoEra = LocalDate.MAX.getEra(); + assertSame(isoEra,IsoEra.CE); + assertSame(LocalDate.MIN.getEra(),IsoEra.BCE); + } }