code: public static String getLocalizedDateTimePattern(
                      FormatStyle dateStyle, FormatStyle timeStyle, Chronology chrono, Locale locale) {
          Jdk8Methods.requireNonNull(locale, "locale");
          Jdk8Methods.requireNonNull(chrono, "chrono");
          if (dateStyle == null && timeStyle == null) {
              throw new IllegalArgumentException("Either dateStyle or timeStyle must be non-null");
          }
          DateFormat dateFormat;
          if (dateStyle != null) {
              if (timeStyle != null) {
                  dateFormat = DateFormat.getDateTimeInstance(dateStyle.ordinal(), timeStyle.ordinal(), locale);
              } else {
                  dateFormat = DateFormat.getDateInstance(dateStyle.ordinal(), locale);
              }
          } else {
              dateFormat = DateFormat.getTimeInstance(timeStyle.ordinal(), locale);
          }
          if (dateFormat instanceof SimpleDateFormat) {
              return ((SimpleDateFormat) dateFormat).toPattern();
          }
          throw new IllegalArgumentException("Unable to determine pattern");
      }
docs: Gets the formatting pattern for date and time styles for a locale and chronology.
  The locale and chronology are used to lookup the locale specific format
  for the requested dateStyle and/or timeStyle.
  
  @param dateStyle  the FormatStyle for the date
  @param timeStyle  the FormatStyle for the time
  @param chrono  the Chronology, non-null
  @param locale  the locale, non-null
  @return the locale and Chronology specific formatting pattern
  @throws IllegalArgumentException if both dateStyle and timeStyle are null