一、日期绑定解决
项目中我们在使用SpringMVC时会发现对于日期参数的绑定无法接收,会报出400错误。
对于此问题解决方法有如下两种:
1、使用 @DateTimeFormat 注解。
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date testDate;
2、自定义日期转换类。
在SpringBoot的启动类中添加如下代码:
@SpringBootApplication
@ImportResource({"classpath:spring-config.xml"})
@EnableDubboConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
/**
* 处理日期问题
* @return
*/
@Bean
public Converter<String, Date> addNewConvert() {
return new Converter<String, Date>() {
@Override
public Date convert(String source) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = sdf.parse((String) source);
} catch (Exception e) {
e.printStackTrace();
}
return date;
}
};
}
}
按照上面的两种方式我们可以解决时间参数无法绑定的问题。但是在传递的过程中我们会发现传递的时间与北京时间相差8个小时。
二、处理日期相差8个小时的问题
原因是由于时区的问题,默认的时区与我们指定的时区相差八个小时,所以我们需要指定我们自己的时区。代码如下:
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
private Date testDate;
项目问题,留作笔记,已被后需!