code: public static final DateIntervalFormat getInstance(String skeleton,
                                                   ULocale locale, 
                                                   DateIntervalInfo dtitvinf)
      {
          // clone. If it is frozen, clone returns itself, otherwise, clone
          // returns a copy.
          dtitvinf = (DateIntervalInfo)dtitvinf.clone(); 
          DateTimePatternGenerator generator = DateTimePatternGenerator.getInstance(locale);
          return new DateIntervalFormat(skeleton, dtitvinf, new SimpleDateFormat(generator.getBestPattern(skeleton), locale));
      }
docs: Construct a DateIntervalFormat from skeleton
  a DateIntervalInfo, and the given locale.
  
  <P>
  In this factory method, user provides its own date interval pattern
  information, instead of using those pre-defined data in resource file.
  This factory method is for powerful users who want to provide their own
  interval patterns.
  
  <P>
  There are pre-defined skeleton in DateFormat,
  such as MONTH_DAY, YEAR_MONTH_WEEKDAY_DAY etc.
  
  Those skeletons have pre-defined interval patterns in resource files.
  Users are encouraged to use them.
  For example:
  DateIntervalFormat.getInstance(DateFormat.MONTH_DAY, false, loc,itvinf);
  
  the DateIntervalInfo provides the interval patterns.
  
  User are encouraged to set default interval pattern in DateIntervalInfo
  as well, if they want to set other interval patterns ( instead of
  reading the interval patterns from resource files).
  When the corresponding interval pattern for a largest calendar different
  field is not found ( if user not set it ), interval format fallback to
  the default interval pattern.
  If user does not provide default interval pattern, it fallback to
  "{date0} - {date1}"
  
  @param skeleton  the skeleton on which interval format based.
  @param locale    the given locale
  @param dtitvinf  the DateIntervalInfo object to be adopted.
  @return          a date time interval formatter.