code: protected int subParse(String text, int start, char ch, int count,
                             boolean obeyCount, boolean allowNegative,
                             boolean[] ambiguousYear, Calendar cal)
      {
          return subParse(text, start, ch, count, obeyCount, allowNegative, ambiguousYear, cal, null, null);
      }
docs: Protected method that converts one field of the input string into a
  numeric field value in <code>cal</code>.  Returns -start (for
  ParsePosition) if failed.  Subclasses may override this method to
  modify or add parsing capabilities.
  @param text the time text to be parsed.
  @param start where to start parsing.
  @param ch the pattern character for the date field text to be parsed.
  @param count the count of a pattern character.
  @param obeyCount if true, then the next field directly abuts this one,
  and we should use the count to know when to stop parsing.
  @param ambiguousYear return parameter; upon return, if ambiguousYear[0]
  is true, then a two-digit year was parsed and may need to be readjusted.
  @param cal
  @return the new start position if matching succeeded; a negative
  number indicating matching failure, otherwise.  As a side effect,
  set the appropriate field of <code>cal</code> with the parsed
  value.