code: public static LocalDateTime ofEpochSecond(long epochSecond, int nanoOfSecond, ZoneOffset offset) {
          Objects.requireNonNull(offset, "offset");
          NANO_OF_SECOND.checkValidValue(nanoOfSecond);
          long localSecond = epochSecond + offset.getTotalSeconds();  // overflow caught later
          long localEpochDay = Math.floorDiv(localSecond, SECONDS_PER_DAY);
          int secsOfDay = (int)Math.floorMod(localSecond, SECONDS_PER_DAY);
          LocalDate date = LocalDate.ofEpochDay(localEpochDay);
          LocalTime time = LocalTime.ofNanoOfDay(secsOfDay * NANOS_PER_SECOND + nanoOfSecond);
          return new LocalDateTime(date, time);
      }
docs: Obtains an instance of {@code LocalDateTime} using seconds from the
  epoch of 1970-01-01T00:00:00Z.
  <p>
  This allows the {@link ChronoField#INSTANT_SECONDS epoch-second} field
  to be converted to a local date-time. This is primarily intended for
  low-level conversions rather than general application usage.
  
  @param epochSecond  the number of seconds from the epoch of 1970-01-01T00:00:00Z
  @param nanoOfSecond  the nanosecond within the second, from 0 to 999,999,999
  @param offset  the zone offset, not null
  @return the local date-time, not null
  @throws DateTimeException if the result exceeds the supported range,
  or if the nano-of-second is invalid