code: static DateTimeZone getDateTimeZone(PageContext pc, Tag fromTag) {
          DateTimeZone tz = null;
  
          Tag t = findAncestorWithClass(fromTag, DateTimeZoneSupport.class);
          if (t != null) {
              // use time zone from parent <timeZone> tag
              DateTimeZoneSupport parent = (DateTimeZoneSupport) t;
              tz = parent.getDateTimeZone();
          } else {
              // get time zone from configuration setting
              Object obj = Config.find(pc, FMT_TIME_ZONE);
              if (obj != null) {
                  if (obj instanceof DateTimeZone) {
                      tz = (DateTimeZone) obj;
                  } else {
                      try {
                          tz = DateTimeZone.forID((String) obj);
                      } catch (IllegalArgumentException iae) {
                          tz = DateTimeZone.UTC;
                      }
                  }
              }
          }
  
          return tz;
      }
docs: Determines and returns the time zone to be used by the given action.
  <p>
  If the given action is nested inside a &lt;dateTimeZone&gt; action,
  the time zone is taken from the enclosing &lt;dateTimeZone&gt; action.
  <p>
  Otherwise, the time zone configuration setting
  <tt>org.joda.time.FMT_TIME_ZONE</tt> is used.
  
  @param pc  the page containing the action for which the time zone
  needs to be determined
  @param fromTag  the action for which the time zone needs to be determined
  
  @return the time zone, or <tt> null </tt> if the given action is not
  nested inside a &lt;dateTimeZone&gt; action and no time zone configuration
  setting exists