code: public static boolean registerProvider(ZoneModelProvider provider) {
  
          String name = provider.getName();
  
          if (name.isEmpty()) {
              throw new IllegalArgumentException(
                  "Missing name of zone model provider.");
          } else if (name.equals(NAME_TZDB)) {
              throw new IllegalArgumentException(
                  "TZDB provider cannot be registered after startup.");
          } else if (name.equals(NAME_JUT)) {
              throw new IllegalArgumentException(
                  "Platform provider cannot be replaced.");
          } else if (name.equals(NAME_DEFAULT)) {
              throw new IllegalArgumentException(
                  "Default zone model provider cannot be overridden.");
          }
  
          boolean inserted = (PROVIDERS.putIfAbsent(name, provider) == null);
  
          if (inserted) {
              zonalKeys = new ZonalKeys();
          }
  
          return inserted;
  
      }
docs: /*[deutsch]
  <p>Registriert manuell den angegebenen {@code ZoneModelProvider}. </p>
  
  <p>Wiederholte Registrierungen des gleichen {@code ZoneModelProvider}
  werden ignoriert. </p>
  
  @param   provider    custom zone model provider to be registered
  @return  {@code true} if registration was successful else {@code false}
  @throws  IllegalArgumentException if given {@code ZoneModelProvider}
  refers to default, platform or TZDB-provider by name
  @since   3.20/4.16