1. 程式人生 > >springmvc中對日期格式的轉換

springmvc中對日期格式的轉換

在做開發時,經常設計到日期格式的轉換,前端頁面經常傳過來的是String型別的,但是後端經常封裝類是都是Date型別,這就會導致型別轉換錯誤,有時候還會報404的錯誤(這個本人遇到過,不知道為什麼會報這個錯誤),這個時候為了方便,通常我們配置一個全域性的工具類-型別轉換器。

工具類如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.lang.StringUtils;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

@Component
public class StringToDateConverter implements Converter<String, Date> {
    private static final String[] patterns = new String[] { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd",
            "EEE, d MMM yyyy HH:mm:ss z", "yy-MM-dd" };

    @Override
    public Date convert(String source) {
        if (StringUtils.isBlank(source)) {
            return null;
        }
        Date result = null;
        for (String pattern : patterns) {
            SimpleDateFormat format = new SimpleDateFormat(pattern);
            try {
                result = format.parse(source);
                break;
            } catch (ParseException e) {
            }
        }
        try {
            if (result == null) {
                long time = Long.parseLong(source);
                result = new Date(time);
            }
        } catch (Exception e) {
        }
        return result;
    }
}