code: public static Chronology from(TemporalAccessor temporal) {
          Jdk8Methods.requireNonNull(temporal, "temporal");
          Chronology obj = temporal.query(TemporalQueries.chronology());
          return (obj != null ? obj : IsoChronology.INSTANCE);
      }
docs: Obtains an instance of {@code Chronology} 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 Chronology}.
  If the specified temporal object does not have a chronology, {@link IsoChronology} is returned.
  <p>
  The conversion will obtain the chronology using {@link TemporalQueries#chronology()}.
  <p>
  This method matches the signature of the functional interface {@link TemporalQuery}
  allowing it to be used in queries via method reference, {@code Chrono::from}.
  
  @param temporal  the temporal to convert, not null
  @return the chronology, not null
  @throws DateTimeException if unable to convert to an {@code Chronology}