NanoClock extends Clock implements Serializable { @Override public long millis() { return System.currentTimeMillis(); } private  NanoClock(final ZoneId zone); @Override ZoneId getZone(); @Override NanoClock withZone(final ZoneId zone); @Override long millis(); long nanos(); @Override Instant instant(); @Override int hashCode(); @Override boolean equals(final Object obj); @Override String toString(); static NanoClock system(final ZoneId zone); static NanoClock systemUTC(); static NanoClock systemDefaultZone(); static final long NANOS_PER_SECOND; }
@Test public void millis() { retry(3, () -> { final Clock nano = NanoClock.systemUTC(); final long t2 = System.currentTimeMillis(); final long t1 = nano.instant().toEpochMilli(); assertEquals(t1, t2, 15); });}