code: public LocalDateTime withNano(int nanoOfSecond) {
          LocalTime newTime = time.withNano(nanoOfSecond);
          return with(date, newTime);
      }
docs: Returns a copy of this {@code LocalDateTime} with the nano-of-second altered.
  <p>
  This instance is immutable and unaffected by this method call.
  
  @param nanoOfSecond  the nano-of-second to set in the result, from 0 to 999,999,999
  @return a {@code LocalDateTime} based on this date-time with the requested nanosecond, not null
  @throws DateTimeException if the nano value is invalid