在时间(date)属性的字段上加上
@DateTimeFormat(pattern="xxxx")
使用转换器
新增一个类实现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)); } }
注册转换器
<mvc:annotation-driven conversion-service="conversionService"/ /> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <list> <bean class="转换器的类" /> </list> </property> </bean>