code: public DateTimeFormatter getFormatter() {
          DateTimeFormatter[] f = iFormatter;
          if (f == null) {
              if (size() == 0) {
                  return null;
              }
              f = new DateTimeFormatter[2];
              try {
                  List<DateTimeFieldType> list = new ArrayList<DateTimeFieldType>(Arrays.asList(iTypes));
                  f[0] = ISODateTimeFormat.forFields(list, true, false);
                  if (list.size() == 0) {
                      f[1] = f[0];
                  }
              } catch (IllegalArgumentException ex) {
                  // ignore
              }
              iFormatter = f;
          }
          return f[0];
      }
docs: Gets a formatter suitable for the fields in this partial.
  <p>
  If there is no appropriate ISO format, null is returned.
  This method may return a formatter that does not display all the
  fields of the partial. This might occur when you have overlapping
  fields, such as dayOfWeek and dayOfMonth.
  
  @return a formatter suitable for the fields in this partial, null
  if none is suitable