Spring MVC接收Date参数全局通用配置

先上代码:

import java.util.Date;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;

@Configuration
public class WebConfig {
	@Bean
	public Converter<String, Date> dateConverter() {
		// 转成lamda表达式有问题,可能jdk的bug
		return new Converter<String, Date>() {
			@Override
			public Date convert(String source) {
				if (StringUtils.isBlank(source)) return null; // 这行也可不要
				try {
					// 将项目中所有可能出现的日期格式按出现频率降序排列
					return DateUtils.parseDate(source, "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd",
							"yyyy-MM", "yyyy/MM/dd", "yyyyMMddHHmmss", "yyyyMMdd");
				} catch (Exception e) {
					throw new RuntimeException(e);
				}
			}
		};
	}
}

注:需要引入commons-lang3工具类

好处:不需要在每个Date类型的参数前加上@DateTimeFormat注解并标上格式了,有更好的兼容性。

你可能感兴趣的:(Spring,Date,转换,配置)