code: public static Date parseSmartDateWithSeparator(final String dateStr, final String separator, final String... fmts)
      {
          String tmp = dateStr.replaceAll(separator, "/");
  
          for (String fmt : fmts)
          {
              try
              {
                  DateFormat df = dateFormat(fmt); // cached
                  df.setLenient(false);
                  return df.parse(tmp);
              } catch (ParseException ignored)
              {
                  //
              }
          }
  
          throw new IllegalArgumentException("Unable to parse date '" + dateStr + "'");
      }
docs: <p>
  Tries to parse a date string applying an array of non lenient format
  patterns. The formats are automatically cached.
  </p>
  
  @param dateStr
  The date string
  @param separator
  The separator regexp
  @param fmts
  An array of formats
  @return the converted Date
  @see #parseSmartDate(String, String...)