content: package nuc.bysjxtglxt.configure;
  
  import org.apache.commons.lang3.StringUtils;
  import org.springframework.core.convert.converter.Converter;
  import java.text.SimpleDateFormat;
  import java.util.Date;
  
  /**
   * @Author: jurui
   * @Email: acescen@foxmail.com
   * @ProjectName: bysjxtglxt
   * @Package: nuc.bysjxtglxt.configure
   * @Description:
   * @Date: Created in 9:53 2019-12-22
   */
  
  public class StringToDateConverter implements Converter<String,Date> {
      private static final String dateFormat = "yyyy-MM-dd HH:mm:ss";
      private static final String shortDateFormat = "yyyy-MM-dd";
      private static final String dateFormat2 = "yyyy/MM/dd HH:mm:ss";
      private static final String shortDateFormat2 = "yyyy/MM/dd";
      @Override
      public Date convert(String source) {
          if (StringUtils.isBlank(source)) {
              return null;
          }
          source = source.trim();
          try {
              SimpleDateFormat formatter;
              if (source.contains("-")) {
                  if (source.contains(":")) {
                      formatter = new SimpleDateFormat(dateFormat);
                  } else {
                      formatter = new SimpleDateFormat(shortDateFormat);
                  }
                  Date dtDate = formatter.parse(source);
                  return dtDate;
              } else if (source.contains("/")) {
                  if (source.contains(":")) {
                      formatter = new SimpleDateFormat(dateFormat2);
                  } else {
                      formatter = new SimpleDateFormat(shortDateFormat2);
                  }
                  Date dtDate = formatter.parse(source);
                  return dtDate;
              }
          } catch (Exception e) {
              throw new RuntimeException(String.format("parser %s to Date fail", source));
          }
  
          throw new RuntimeException(String.format("parser %s to Date fail", source));
  
      }
  }
  