在做开发时,经常设计到日期格式的转换,前端页面经常传过来的是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;
}
}