1. 程式人生 > >SpringMVC寫一個時間格式轉換器(DateConverter)

SpringMVC寫一個時間格式轉換器(DateConverter)

在工具包裡寫一個時間格式轉換類:

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>

還可以實現更加複雜的時間格式轉換,這裡不演示了。