spring boot 配置全局日期类型转换器
Posted sjxxx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot 配置全局日期类型转换器相关的知识,希望对你有一定的参考价值。
1. 首先自定义一个类型转换器
import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; @Component public class MyDataConvert implements Converter<String, Date> { //这里可以自己灵活变通 private String [] pattern = {"yyyy-MM-dd","yyyy年MM月dd日"}; @Override public Date convert(String s) { System.out.println("convert"); for (int i=0;i<pattern.length;i++){ try { return new SimpleDateFormat(pattern[i]).parse(s); } catch (ParseException e) { continue; } } return null; } }
2.在配置类中注册自定义类型转换器
import com.example.demo.convert.MyDataConvert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.support.GenericConversionService; import org.springframework.web.bind.support.ConfigurableWebBindingInitializer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; import javax.annotation.PostConstruct; @Configuration public class WebConfigurer extends WebMvcConfigurationSupport { @Autowired private RequestMappingHandlerAdapter handlerAdapter; @PostConstruct public void initEditableAvlidation() { ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer)handlerAdapter.getWebBindingInitializer(); if(initializer.getConversionService()!=null) { GenericConversionService genericConversionService = (GenericConversionService)initializer.getConversionService(); genericConversionService.addConverter(new MyDataConvert());//添加自定义的类型转换器 } } }
以上是关于spring boot 配置全局日期类型转换器的主要内容,如果未能解决你的问题,请参考以下文章