springmvc配置:
<!-- 1.准备好转换的工具类,这个工具类必须实现Converter接口 --> <bean id="mydate" class="cn.sz.gl.util.MyDate"></bean> <!-- 2.准备转换器,并把上一步的工具类纳入转换器中 --> <bean id="myconverter" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" > <property name="converters"> <set> <ref bean="mydate" /> </set> </property> </bean> <!-- 3.还需要让转换器起作用 --> <mvc:annotation-driven conversion-service="myconverter" ></mvc:annotation-driven>
java:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.core.convert.converter.Converter; public class MyDate implements Converter<String, Date> { /*private SimpleDateFormat [] sdfs = { new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), new SimpleDateFormat("yyyy/MM/dd"), new SimpleDateFormat("yyyy-MM-dd"), new SimpleDateFormat("yyyyMMdd") };*/ private String [][] arr = { {"yyyy-MM-dd HH:mm:ss","\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}"}, {"yyyy/MM/dd","\d{4}/\d{2}/\d{2}"}, {"yyyyMMdd","\d{8}"} }; public Date convert(String source) { /*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { return sdf.parse(source); } catch (ParseException e) { e.printStackTrace(); }*/ /*for (int i = 0; i < sdfs.length; i++) { try { return sdfs[i].parse(source); } catch (ParseException e) { continue; } }*/
//应用正则表达式来匹配 try { for (int i = 0; i < arr.length; i++) { String [] str = arr[i]; if(source.matches(str[1])){ SimpleDateFormat sdf = new SimpleDateFormat(str[0]); return sdf.parse(source); } } } catch (ParseException e) { e.printStackTrace(); } return null; } }