code: public DateTimeFormatter withChronology(Chronology chrono) {
          if (Jdk8Methods.equals(this.chrono, chrono)) {
              return this;
          }
          return new DateTimeFormatter(printerParser, locale, decimalStyle, resolverStyle, resolverFields, chrono, zone);
      }
docs: Returns a copy of this formatter with a new override chronology.
  <p>
  This returns a formatter with similar state to this formatter but
  with the override chronology set.
  By default, a formatter has no override chronology, returning null.
  <p>
  If an override is added, then any date that is printed or parsed will be affected.
  <p>
  When printing, if the {@code Temporal} object contains a date then it will
  be converted to a date in the override chronology.
  Any time or zone will be retained unless overridden.
  The converted result will behave in a manner equivalent to an implementation
  of {@code ChronoLocalDate},{@code ChronoLocalDateTime} or {@code ChronoZonedDateTime}.
  <p>
  When parsing, the override chronology will be used to interpret the
  {@linkplain ChronoField fields} into a date unless the
  formatter directly parses a valid chronology.
  <p>
  This instance is immutable and unaffected by this method call.
  
  @param chrono  the new chronology, not null
  @return a formatter based on this formatter with the requested override chronology, not null