在SpringMVC的配置文件中加入一下代码
<mvc:annotation-driven conversion-service="conversionService"/>
<!--声明自定义转换器-->
<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer" id="webBindingInitializer">
<property name="conversionService" ref="conversionService"/>
</bean>
<!--添加自定义日期转换器-->
<bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean" id="conversionService">
<property name="converters">
<list>
<bean class="com.ssm.converter.DataConverter"></bean>
</list>
</property>
</bean>
编写日期转换的具体内容
public class DataConverter implements Converter<String, Date> { //要遍历的输入字符串格式 private SimpleDateFormat[] simpleDateFormats={ new SimpleDateFormat("yyyy-MM-dd"), new SimpleDateFormat("yyyy/MM/dd"), new SimpleDateFormat("yyyy.MM.dd"), new SimpleDateFormat("yyyyMMdd"), new SimpleDateFormat("yyyy年MM月dd号"), new SimpleDateFormat("yyyy年MM月dd日") }; //日期转换的具体方法 public Date convert(String source) { for (SimpleDateFormat simpleDateFormat : simpleDateFormats) { try { simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); System.out.println(simpleDateFormat.parse(source)); return simpleDateFormat.parse(source); } catch (ParseException parseException) { //parseException.printStackTrace();直接进入下一个字符串格式 continue; } } try { throw new ParseException("日期转换失败",0); } catch (Exception e) { e.printStackTrace(); } return null; } }
拓展:还可以使用在WebDataBinder上注册一个CustomDataEditor,要用到@InitBinder
缺点只在本control里有效
或者在实体类的日期型属性上加上@DataTimeFormat或@JsonFormat