code: @Override
      public int print(
          ChronoDisplay formattable,
          Appendable buffer,
          AttributeQuery attributes,
          Set<ElementPosition> positions,
          boolean quickPath
      ) throws IOException {
  
          TZID tzid;
  
          if (formattable.hasTimezone()) {
              tzid = formattable.getTimezone();
          } else if (attributes.contains(Attributes.TIMEZONE_ID)) {
              tzid = attributes.get(Attributes.TIMEZONE_ID);
          } else {
              throw new IllegalArgumentException(
                  "Cannot extract timezone name in style " + this.style + " from: " + formattable);
          }
  
          if (tzid instanceof ZonalOffset) { // TODO: fallback-Einstellung prüfen, wenn mehr Daten vorhanden sind
              return this.fallback.print(formattable, buffer, attributes, positions, quickPath);
          }
  
          String name =
              Timezone.of(tzid).getDisplayName(
                  this.style,
                  quickPath
                      ? this.locale
                      : attributes.get(Attributes.LANGUAGE, Locale.ROOT));
  
          if (name.equals(tzid.canonical())) { // name of given style not available => fallback
              return this.fallback.print(formattable, buffer, attributes, positions, quickPath);
          }
  
          int start = -1;
  
          if (buffer instanceof CharSequence) {
              start = ((CharSequence) buffer).length();
          }
  
          buffer.append(name);
          int printed = name.length();
  
          if (
              (start != -1)
              && (printed > 0)
              && (positions != null)
          ) {
              positions.add(
                  new ElementPosition(
                      TimezoneElement.TIMEZONE_ID,
                      start,
                      start + printed));
          }
  
          return printed;
  
      }
docs: ~ Methoden ----------------------------------------------------------