code: private static Timezone getTimezone(
          ChronoEntity<?> entity,
          AttributeQuery attrs
      ) {
  
          TZID tzid = null;
  
          if (entity.hasTimezone()) {
              tzid = entity.getTimezone();
          } else if (attrs.contains(Attributes.TIMEZONE_ID)) {
              tzid = attrs.get(Attributes.TIMEZONE_ID); // Ersatzwert
          }
  
          if (tzid != null) {
              if (entity.contains(FlagElement.DAYLIGHT_SAVING)) {
                  boolean dst = entity.get(FlagElement.DAYLIGHT_SAVING).booleanValue();
                  TransitionStrategy strategy =
                      attrs
                          .get(Attributes.TRANSITION_STRATEGY, Timezone.DEFAULT_CONFLICT_STRATEGY)
                          .using(dst ? OverlapResolver.EARLIER_OFFSET : OverlapResolver.LATER_OFFSET);
                  return Timezone.of(tzid).with(strategy);
              } else if (attrs.contains(Attributes.TRANSITION_STRATEGY)) {
                  return Timezone.of(tzid).with(attrs.get(Attributes.TRANSITION_STRATEGY));
              } else {
                  return Timezone.of(tzid);
              }
          }
  
          throw new AssertionError(
              "Timezone must exist if a moment was successfully parsed.");
  
      }
docs: übernommen von Moment.Merger