今天遇到一个奇葩的问题,使用ElementUI日期控件,数据上传到数据库以后差两天。
于是我百度,发现基本上都是差一天,并且算是一个小bug,由于elementUI采用的可能是别的时区,时间相差八个小时,所以出现该问题,在日期组件中加入该属性即可解决问题value-format="yyyy-MM-dd"
。
我试了一下,本来差两天的,现在只差一天了。百度上找不到差两天的答案,于是只能自己排查了,先使用日期控件的change方法,输出,发现没毛病,那可能是后台问题了吧!
于是我去controller输出格式化后日期时间:
@RequestMapping("/add")
public Message add(@RequestBody Employee employee){
Date birthday = employee.getBirthday();
String format = new SimpleDateFormat("yyyy-MM-dd").format(birthday);
System.out.println(format);
try {
service.add(employee);
Message message = new Message(true,"数据添加成功!");
return message;
}catch (Exception e){
System.out.println("错误信息:/n"+e);
Message message = new Message(false,"数据添加失败!");
return message;
}
}
再次测试,通过这里输出,发现没问题,但是去数据库查看刚刚插入的数据,比我在controller输出的日期差一天,实锤了,就是后台问题!
于是直接百度java接收前端时间少一天,出来了我想要的答案:
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date birthday;
直接在格式化日期后面加上时区设置,坑爹的东西!!!