public Instant instant() {
if ((tickNanos % 1000_000) == 0) {
long millis = baseClock.millis();
return Instant.ofEpochMilli(millis - Math.floorMod(millis, tickNanos / 1000_000L));
}
Instant instant = baseClock.instant();
long nanos = instant.getNano();
long adjust = Math.floorMod(nanos, tickNanos);
return instant.minusNanos(adjust);
}
|