code: public Chronology getChronology(Object object, DateTimeZone zone) {
          Chronology chrono = ((ReadableInstant) object).getChronology();
          if (chrono == null) {
              return ISOChronology.getInstance(zone);
          }
          DateTimeZone chronoZone = chrono.getZone();
          if (chronoZone != zone) {
              chrono = chrono.withZone(zone);
              if (chrono == null) {
                  return ISOChronology.getInstance(zone);
              }
          }
          return chrono;
      }
docs: Gets the chronology, which is taken from the ReadableInstant.
  If the chronology on the instant is null, the ISOChronology in the
  specified time zone is used.
  If the chronology on the instant is not in the specified zone, it is
  adapted.
  
  @param object  the ReadableInstant to convert, must not be null
  @param zone  the specified zone to use, null means default zone
  @return the chronology, never null