code: public ChronoFormatter<T> with(ChronoHistory history) {
  
          if (history == null) {
              throw new NullPointerException("Missing calendar history.");
          }
  
          Attributes attrs =
              new Attributes.Builder()
                  .setAll(this.globalAttributes.getAttributes())
                  .setCalendarVariant(history.getVariant())
                  .build();
          AttributeSet as =
              this.globalAttributes
                  .withInternal(HistoricAttribute.CALENDAR_HISTORY, history)
                  .withAttributes(attrs);
          return new ChronoFormatter<>(this, as, history);
  
      }
docs: /*[deutsch]
  <p>Erzeugt eine Kopie, die die angegebene Kalenderreform verwendet. </p>
  
  <p>Zu beachten: Diese Methode wird jedes gregorianische Umstellungsdatum &uuml;berschreiben, das
  von der L&auml;ndereinstellung dieses Formatierers abgeleitet werden mag. </p>
  
  @param   history             chronological history describing historical calendar reforms
  @return  changed copy with given history while this instance remains unaffected
  @since   3.1