code: private TimeZone parseTimezone(CharSequenceScanner scanner) {
  
      int pos = scanner.getCurrentIndex();
      Integer offset = parseTimezoneOffset(scanner);
      // has offset?
      if (offset != null) {
        int offsetMs = offset.intValue();
        String tzName = "GMT";
        if (offsetMs != 0) {
          if (offsetMs < 0) {
            tzName += "-";
          } else {
            tzName += "+";
          }
          tzName += scanner.substring(pos, scanner.getCurrentIndex());
        }
        return new SimpleTimeZone(offsetMs, tzName);
      } else if (scanner.getCurrentIndex() == pos) {
        return null;
      } else {
        // UTC
        return TZ_UTC;
      }
    }
docs: This method parses the timezone from the given {@code parser}.
  
  @param scanner is the parser pointing to the timezone or at the end of the string
  @return the parsed timezone or {@code null} if parser already at the end of the string.