springMVC日期转换
方式有多种,如果用bean接收参数,可以直接在属性上注解@DateTimeFormat(pattern=”yyyy-MM-dd hh:mm:ss”) ,或者在controller中加@InitBinder,但我一般用下面这种方式:
开发日期转换器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | /** * 日期转换 */ public class DateConverter implements Converter<String, Date> { private static final List<String> formarts = new ArrayList<String>(4); static{ formarts.add("yyyy-MM"); formarts.add("yyyy-MM-dd"); formarts.add("yyyy-MM-dd hh:mm"); formarts.add("yyyy-MM-dd hh:mm:ss"); } @Override public Date convert(String text) { try { if(StringUtils.isNotBlank(text)){ if(text.matches("^\\d{4}-\\d{1,2}$")){//yyyy-MM return new SimpleDateFormat(formarts.get(0)).parse(text); }else if(text.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){//yyyy-MM-dd return new SimpleDateFormat(formarts.get(1)).parse(text); }else if(text.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")){//yyyy-MM-dd hh:mm return new SimpleDateFormat(formarts.get(2)).parse(text); }else if(text.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){//yyyy-MM-dd hh:mm:ss return new SimpleDateFormat(formarts.get(3)).parse(text); }else{ throw new IllegalArgumentException("Invalid datatime value '" + text + "'"); } }else return null; } catch (ParseException e) { throw new IllegalArgumentException("Invalid datatime value '" + text + "'"); } } } |
spring-mvc.xml中配置:
1 2 3 4 5 6 7 8 9 | <mvc:annotation-driven conversion-service="conversionService"> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <list> <bean class="com.skygp.skyjwp.comm.DateConverter"></bean> </list> </property> </bean> |
Comments are currently closed.