SpringMVC寫一個時間格式轉換器(DateConverter)
阿新 • • 發佈:2019-02-06
在工具包裡寫一個時間格式轉換類:
package com.neuedu.crm.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Pattern; import org.springframework.core.convert.converter.Converter; /** * 日期格式轉換演算法 * @author mechan */ public class DateConverter implements Converter<String, Date> { @Override public Date convert(String source ) { //編寫時間轉換器,支援多種時間格式 SimpleDateFormat sdf = getSimpleDateFormat(source); try { Date date = sdf.parse(source); return date; } catch (ParseException e) { e.printStackTrace(); } return null; } private SimpleDateFormat getSimpleDateFormat( String source ) { SimpleDateFormat sdf = new SimpleDateFormat(); if( Pattern.matches("^\\d{4}-\\d{2}-\\d{2}$", source )) { sdf = new SimpleDateFormat("yyyy-MM-dd"); } else { System.out.println("日期格式錯誤"); } return sdf; } }
原理:(如果有夥伴想知道converter 的實現原理,可以百度,DateConverter是實現了Converter介面,重寫了convert()方法實現的)
然後把這個時間格式轉換工具類的全類名,配置在SpringMVC的配置檔案中
<!-- 註冊轉化器與驗證器 --> <mvc:annotation-driven conversion-service="conversion-service" validator="validator" /> <!-- 轉換器服務工廠Bean --> <bean id="conversion-service" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="com.neuedu.crm.utils.DateConverter" /> </set> </property> </bean>
還可以實現更加複雜的時間格式轉換,這裡不演示了。