后端开发_使用@DateTimeFormat注解解决前台string类型与后台date类型的转换,使用@JsonFormat注解解决后台date类型与前台string类型的转换
说明:
有的时候由前台jsp页面填写一个日期,提交到后台spring mvc的时候,我们希望直接转换成一个Date类型,而不是由一个string 类型接收,然后再通过simpleDateFormat来进行转格式,这样太麻烦了,代码会显的很乱,spring为我们提供了类型转化器,写起来也是很麻烦,我们的需求很简单就是由框架帮我们去自动的转换类型而不是手动的转换,在这样的背景下,我们可以使用@DateTimeFormat注解。此外我们还有一个需求就是我们从数据库里面查询到了日期,然后我们想把这个日期自动的变成string类型,这时我们可以使用@JsonFormat注解。
@DateTimeFormat @JsonFormat 这两个注解在网上搜索很很多资料,我只提几个需要注意的地方:
- 注意这两个注解的注解位置
- 注意被注解的字段应该是Date类型
- 一般会用在VO中
- @JsonFormat不要忘了加GMT+8
- @DateTimeFormat要注意前台传过的日期格式是yyyy-MM-dd的形式,如果你传了一个yyyyMMdd的形式会报错(日期格式基于下面的程序):
1 @DateTimeFormat(pattern="yyyy-MM-dd") 2 private Date alertDate; 3 4 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm") 5 public Date getAlertDate() { 6 return alertDate; 7 } 8 9 public void setAlertDate(Date alertDate) { 10 this.alertDate = alertDate; 11 }