diff --git a/src/share/classes/java/time/chrono/JapaneseEra.java b/src/share/classes/java/time/chrono/JapaneseEra.java index 46eee0b59f85fcccf0f3e5c8ef40846ea4bae994..2dbbde3aac22e5f24fc5534e8b44ec1567cac61e 100644 --- a/src/share/classes/java/time/chrono/JapaneseEra.java +++ b/src/share/classes/java/time/chrono/JapaneseEra.java @@ -104,7 +104,7 @@ public final class JapaneseEra static final sun.util.calendar.Era[] ERA_CONFIG; /** - * The singleton instance for the 'Meiji' era (1868-09-08 - 1912-07-29) + * The singleton instance for the 'Meiji' era (1868-01-01 - 1912-07-29) * which has the value -1. */ public static final JapaneseEra MEIJI = new JapaneseEra(-1, LocalDate.of(1868, 1, 1)); diff --git a/test/java/time/test/java/time/TestLocalTime.java b/test/java/time/test/java/time/TestLocalTime.java index d7f04ab5af665f1924cea7a2c8fedbdc60e7bc99..8e25a85f1982b2b75edaa9042eb8bf684aadf51e 100644 --- a/test/java/time/test/java/time/TestLocalTime.java +++ b/test/java/time/test/java/time/TestLocalTime.java @@ -73,6 +73,9 @@ import org.testng.annotations.Test; */ @Test public class TestLocalTime extends AbstractTest { + static final long NANOS_PER_SECOND = 1_000_000_000L; + static final long NANOS_PER_MINUTE = 60 * NANOS_PER_SECOND; + static final long NANOS_PER_DAY = 24 * 60 * NANOS_PER_MINUTE; //----------------------------------------------------------------------- @Test @@ -182,19 +185,27 @@ public class TestLocalTime extends AbstractTest { // now() //----------------------------------------------------------------------- @Test + @SuppressWarnings("unused") public void now() { // Warmup the TimeZone data so the following test does not include // one-time initialization - LocalTime expected = LocalTime.now(Clock.systemDefaultZone()); - - expected = LocalTime.now(Clock.systemDefaultZone()); - LocalTime test = LocalTime.now(); - long diff = test.toNanoOfDay() - expected.toNanoOfDay(); - if (diff < 0) { - // Adjust if for rollover around midnight - diff += 24 * 60 * 60 * 1_000_000_000L; // Nanos Per Day + LocalTime.now(Clock.systemDefaultZone()); + + long diff = Integer.MAX_VALUE; + for (int i = 0; i < 2; i++) { + LocalTime expected = LocalTime.now(Clock.systemDefaultZone()); + LocalTime test = LocalTime.now(); + diff = test.toNanoOfDay() - expected.toNanoOfDay(); + // Normalize for wrap-around midnight + diff = Math.floorMod(NANOS_PER_DAY + diff, NANOS_PER_DAY); + if (diff < 100000000) { + break; + } + // A second iteration may be needed if the clock changed + // due to a DST change between the two calls to now. } - assertTrue(diff < 500000000); // less than 0.5 secs + assertTrue(diff < 100000000, // less than 0.1 sec + "LocalTime.now vs LocalTime.now(Clock.systemDefaultZone()) not close"); } }