code: public long timeRemaining(TimeUnit unit) {
      final long nowNanos = ticker.read();
      if (!expired && deadlineNanos - nowNanos <= 0) {
        expired = true;
      }
      return unit.convert(deadlineNanos - nowNanos, TimeUnit.NANOSECONDS);
    }
docs: How much time is remaining in the specified time unit. Internal units are maintained as
  nanoseconds and conversions are subject to the constraints documented for
  {@link TimeUnit#convert}. If there is no time remaining, the returned duration is how
  long ago the deadline expired.