code: public Interval withStartDateTime(LocalDateTime dateTime) {
          requireNonNull(dateTime);
          return new Interval(dateTime.toLocalDate(), dateTime.toLocalTime(), endDate, endTime);
      }
docs: Returns a new interval based on this interval but with a different start date
  and time.
  
  @param dateTime the new start date and time
  @return a new interval