• 在时间(date)属性的字段上加上

    @DateTimeFormat(pattern="xxxx")

  • 使用转换器

  1. 新增一个类实现Converter接口

    import java.text.SimpleDateFormat;
    import java.util.Date;
    import org.springframework.core.convert.converter.Converter;
    import org.springframework.stereotype.Component;
    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";
     private static final String timeFormat = "HH:mm:ss";
     private static final String shortTimeFormat = "HH:mm";
    
     @Override
     public Date convert(String source) {
         if (source == null) {
             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;
             } else if (!source.contains("/") && !source.contains("-") && source.contains(":")) {
                 if (source.length() > 5) {
                     formatter = new SimpleDateFormat(timeFormat);
                     Date dtDate = formatter.parse(source);
                     return dtDate;
                 } else {
                     formatter = new SimpleDateFormat(shortTimeFormat);
                     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));
    
     }
    }
  2. 注册转换器

<mvc:annotation-driven conversion-service="conversionService"/  />
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
    <property name="converters">
        <list>
            <bean class="转换器的类" />
        </list>
    </property>
</bean>