code: private boolean parseZoneLine(StringTokenizer st, List<TZDBZone> zoneList) {
          TZDBZone zone = new TZDBZone();
          zoneList.add(zone);
          zone.standardOffset = parseOffset(st.nextToken());
          String savingsRule = parseOptional(st.nextToken());
          if (savingsRule == null) {
              zone.fixedSavingsSecs = 0;
              zone.savingsRule = null;
          } else {
              try {
                  zone.fixedSavingsSecs = parsePeriod(savingsRule);
                  zone.savingsRule = null;
              } catch (Exception ex) {
                  zone.fixedSavingsSecs = null;
                  zone.savingsRule = savingsRule;
              }
          }
          zone.text = st.nextToken();
          if (st.hasMoreTokens()) {
              zone.year = Year.of(Integer.parseInt(st.nextToken()));
              if (st.hasMoreTokens()) {
                  parseMonthDayTime(st, zone);
              }
              return false;
          } else {
              return true;
          }
      }
docs: Parses a Zone line.
  
  @param st  the tokenizer, not null
  @return true if the zone is complete