code: private int parseOffsetDefaultLocalizedGMT(String text, int start, int[] parsedLen) {
          int idx = start;
          int offset = 0;
          int parsed = 0;
          do {
              // check global default GMT alternatives
              int gmtLen = 0;
              for (String gmt : ALT_GMT_STRINGS) {
                  int len = gmt.length();
                  if (text.regionMatches(true, idx, gmt, 0, len)) {
                      gmtLen = len;
                      break;
                  }
              }
              if (gmtLen == 0) {
                  break;
              }
              idx += gmtLen;
  
              // offset needs a sign char and a digit at minimum
              if (idx + 1 >= text.length()) {
                  break;
              }
  
              // parse sign
              int sign = 1;
              char c = text.charAt(idx);
              if (c == '+') {
                  sign = 1;
              } else if (c == '-') {
                  sign = -1;
              } else {
                  break;
              }
              idx++;
  
              // offset part
              // try the default pattern with the separator first
              int[] lenWithSep = {0};
              int offsetWithSep = parseDefaultOffsetFields(text, idx, DEFAULT_GMT_OFFSET_SEP, lenWithSep);
              if (lenWithSep[0] == text.length() - idx) {
                  // maximum match
                  offset = offsetWithSep * sign;
                  idx += lenWithSep[0];
              } else {
                  // try abutting field pattern
                  int[] lenAbut = {0};
                  int offsetAbut = parseAbuttingOffsetFields(text, idx, lenAbut);
  
                  if (lenWithSep[0] > lenAbut[0]) {
                      offset = offsetWithSep * sign;
                      idx += lenWithSep[0];
                  } else {
                      offset = offsetAbut * sign;
                      idx += lenAbut[0];
                  }
              }
              parsed = idx - start;
          } while (false);
  
          parsedLen[0] = parsed;
          return offset;
      }
docs: Parses the input text using the default format patterns (e.g. "UTC{0}").
  @param text the input text
  @param start the start index
  @param parsedLen the parsed length, or 0 on failure
  @return the parsed offset in milliseconds.