日期格式转换

第一种:在实体类中相关字段上加注解

     @DateTimeFormat(pattern="yyyy-MM-dd")//此注解是在往数据库输入数据时转换格式

     @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")

       //此注解是在数据出去时进行转换,该注解不是spring自带,使用时需要配置依赖,但是springboot项目不用再手动配置

第二种:创建BaseController,然后需要日期类型转换的controller都要继承它

//使用这个转换器每个controller都要继承才能起作用
public class BaseController {
//    日期类型转换器
//@InitBinder注解的方法可以对WebDataBinder进行初始化,WebDataBinder是DataBinder的子类,用于完成由表单到JavaBean属性的绑定
//@InitBinder方法不能有返回值,它必须盛名为void
@InitBinder public void init(WebDataBinder binder){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 严格转换,不会自动对日期进行增减处理 simpleDateFormat.setLenient(false); binder.registerCustomEditor(Date.class,new CustomDateEditor(simpleDateFormat,true)); } }

第三种:创建日期全局转换器,需要再mvc.xml中进行注册

//日期全局转换器
//需要实现Converter<S,T>接口
public class DateConverter implements Converter<String,Date> {

    @Override
    public Date convert(String s) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//        严格转换:不会自动进行日期的增加处理
        simpleDateFormat.setLenient(false);
        try {
            Date date=simpleDateFormat.parse(s);
            return date;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return new Date();
    }
}

mvc.xml中配置

<mvc:annotation-driven conversion-service="conversionService">
 </--配置参数输出的转换器-->
< mvc:message-converters>
   < bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" >
    <property name="objectMapper" >
      <bean class="com.fasterxml.jackson.databind.ObjectMapper" >
        <property name ="dateFormat" >
          <bean class= "java.text. SimpleDateFormat" >
            < constructor-arg type ="javalang.String" value= yyyy-MM-dd"/>|
       </bean>
</property>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
//参数输入时的转换器 <bean id="conversionService" class="org.springFramework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="com.hsxx.controller.DateConverter"/> </set> </property> </bean>

 

posted @ 2020-05-31 23:35  橙汁one  阅读(299)  评论(0编辑  收藏  举报