code: private void concatSingleDate2TimeInterval(String dtfmt,
                                                 String datePattern,
                                                 int field,
                                                 Map<String, PatternInfo> intervalPatterns)
      {
  
          PatternInfo  timeItvPtnInfo = 
              intervalPatterns.get(DateIntervalInfo.CALENDAR_FIELD_TO_PATTERN_LETTER[field]);
          if ( timeItvPtnInfo != null ) {
              String timeIntervalPattern = timeItvPtnInfo.getFirstPart() + 
                                           timeItvPtnInfo.getSecondPart();
              String pattern = SimpleFormatterImpl.formatRawPattern(
                      dtfmt, 2, 2, timeIntervalPattern, datePattern);
              timeItvPtnInfo = DateIntervalInfo.genPatternInfo(pattern,
                                  timeItvPtnInfo.firstDateInPtnIsLaterDate());
              intervalPatterns.put(
                DateIntervalInfo.CALENDAR_FIELD_TO_PATTERN_LETTER[field], timeItvPtnInfo);
          } 
          // else: fall back
          // it should not happen if the interval format defined is valid
      }
docs: /*
  Concat a single date pattern with a time interval pattern,
  set it into the intervalPatterns, while field is time field.
  This is used to handle time interval patterns on skeleton with
  both time and date. Present the date followed by
  the range expression for the time.
  @param dtfmt                  date and time format
  @param datePattern            date pattern
  @param field                  time calendar field: AM_PM, HOUR, MINUTE
  @param intervalPatterns       interval patterns