code: public ZonedDateTime minusNanos(long nanos) {
          return (nanos == Long.MIN_VALUE ? plusNanos(Long.MAX_VALUE).plusNanos(1) : plusNanos(-nanos));
      }
docs: Returns a copy of this {@code ZonedDateTime} with the specified number of nanoseconds subtracted.
  <p>
  This operates on the instant time-line, such that subtracting one nano will
  always be a duration of one nano earlier.
  This may cause the local date-time to change by an amount other than one nano.
  Note that this is a different approach to that used by days, months and years.
  <p>
  This instance is immutable and unaffected by this method call.
  
  @param nanos  the nanos to subtract, may be negative
  @return a {@code ZonedDateTime} based on this date-time with the nanoseconds subtracted, not null
  @throws DateTimeException if the result exceeds the supported date range