code: public static Instant from(TemporalAccessor temporal) {
          try {
              long instantSecs = temporal.getLong(INSTANT_SECONDS);
              int nanoOfSecond = temporal.get(NANO_OF_SECOND);
              return Instant.ofEpochSecond(instantSecs, nanoOfSecond);
          } catch (DateTimeException ex) {
              throw new DateTimeException("Unable to obtain Instant from TemporalAccessor: " +
                      temporal + ", type " + temporal.getClass().getName(), ex);
          }
      }
docs: Obtains an instance of {@code Instant} from a temporal object.
  <p>
  A {@code TemporalAccessor} represents some form of date and time information.
  This factory converts the arbitrary temporal object to an instance of {@code Instant}.
  <p>
  The conversion extracts the {@link ChronoField#INSTANT_SECONDS INSTANT_SECONDS}
  and {@link ChronoField#NANO_OF_SECOND NANO_OF_SECOND} fields.
  <p>
  This method matches the signature of the functional interface {@link TemporalQuery}
  allowing it to be used as a query via method reference, {@code Instant::from}.
  
  @param temporal  the temporal object to convert, not null
  @return the instant, not null
  @throws DateTimeException if unable to convert to an {@code Instant}