2步操作
1 创建 utils — StringToDateConverter
public class StringToDateConverter implements Converter<String,Date> {
private static final String dateFormat = "yyyy-MM-dd HH:mm:ss";
private static final String shortDateFormat = "yyyy-MM-dd";
private static final String dateFormat2 = "yyyy/MM/dd HH:mm:ss";
private static final String shortDateFormat2 = "yyyy/MM/dd";
@Override
public Date convert(String source) {
if (StringUtils.isEmpty(source)) {
return null;
}
source = source.trim();
try {
SimpleDateFormat formatter;
if (source.contains("-")) {
if (source.contains(":")) {
formatter = new SimpleDateFormat(dateFormat);
} else {
formatter = new SimpleDateFormat(shortDateFormat);
}
Date dtDate = formatter.parse(source);
return dtDate;
} else if (source.contains("/")) {
if (source.contains(":")) {
formatter = new SimpleDateFormat(dateFormat2);
} else {
formatter = new SimpleDateFormat(shortDateFormat2);
}
Date dtDate = formatter.parse(source);
return dtDate;
}
} catch (Exception e) {
throw new RuntimeException(String.format("parser %s to Date fail", source));
}
throw new RuntimeException(String.format("parser %s to Date fail", source));
}
}
2 创建 config – webConfigBeans
@Configuration
public class WebConfigBeans {
@Autowired
RequestMappingHandlerAdapter requestMappingHandlerAdapter;
@PostConstruct
public void initEditableValidation(){
ConfigurableWebBindingInitializer configurableWebBindingInitializer = (ConfigurableWebBindingInitializer) requestMappingHandlerAdapter.getWebBindingInitializer();
if(configurableWebBindingInitializer.getConversionService()!=null){
GenericConversionService service = (GenericConversionService) configurableWebBindingInitializer.getConversionService();
service.addConverter(new StringToDateConverter());
}
}
}