SpringBoot的日期格式化

HTTP请求映射到Controller方法的参数上后,Spring会自动进行类型转化,对于日期类型的参数,Spring默认并没有配置如何将字符串转为日期类型。

有两种方式:

方法一. :使用注解@InitBinder,添加格式化绑定

@InitBinder
    protected void initBinder(WebDataBinder binder) {
        binder.addCustomFormatter(new DateFormatter("yyyy-MM-dd"));
    }

 

//传入的String类型的date入参,先被initBinder给转化了

@ResponseBody
    @RequestMapping("/date")
    public void printData(@RequestParam("date") Date d) {
        System.out.println(d);
        return;
    }

 

方法二:

 通过SpringBoot的MVC特性全局配置类WebMvcConfigurer类

1.定义MvcConfigurer继承WebMvcConfigurer

2. 定义格式化日期的方法

/**
 * WebMvcConfigurer是用来全局定制化SpringBoot的MVC特性
 * @author jiangxin-028
 *
 */
@Configuration
public class MvcConfigurer implements WebMvcConfigurer{
    //格式化
    public void addFormatters(FormatterRegistry registry) {
        registry.addFormatter(new DateFormatter("yyyy-MM-dd"));
    }
}

配置类在应用启动的时候就初始化了。

你可能感兴趣的:(Spring)