code: public static SimpleTimeZone getCustomTimeZone(String id){
          int[] fields = new int[4];
          if (parseCustomID(id, fields)) {
              // fields[0] - sign
              // fields[1] - hour / 5-bit
              // fields[2] - min  / 6-bit
              // fields[3] - sec  / 6-bit
              Integer key = Integer.valueOf(
                      fields[0] * (fields[1] | fields[2] << 5 | fields[3] << 11));
              return CUSTOM_ZONE_CACHE.getInstance(key, fields);
          }
          return null;
      }
docs: Parse a custom time zone identifier and return a corresponding zone.
  @param id a string of the form GMT[+-]hh:mm, GMT[+-]hhmm, or
  GMT[+-]hh.
  @return a frozen SimpleTimeZone with the given offset and
  no Daylight Savings Time, or null if the id cannot be parsed.