前言
数据格式化,从本质上讲属于数据转换的范畴。Spring就是基于数据转换框架植入“格式化”功能的。
时间是一个比较常用的类型。显示的时候通常是以String显示的。如果前端参数,前端人员也希望用String作为参数。而使用注解处理这些转换,显得就会特别的优雅
注解介绍:
@DatetimeFormat(pattern=“yyyy-MM-dd”)是将String转换成Date,一般前台给后台传值时用
@JsonFormat(pattern=“yyyy-MM-dd”) 将Date转换成String 一般后台传值给前台时
此处注意:@JsonFormat会让时间以0区时间显示。如果直接使用会少了8小时(我所在的是北京时区)修改为
@JsonFormat(pattern=“yyyy-MM-dd”,timezone=“GMT+8”)
@NumberFormat(pattern="#,###") 用来格式化货币(这样前端得传形如1,000。而不能是1000了哟,其实这个用得一般还比较少一点)
例子
public class Student { private String name; private Integer gender; @DateTimeFormat(pattern="yyyy-MM-dd") private Date birth; @NumberFormat(pattern="#,###") private Integer salary; public Student(String name, Integer gender, Date birth, Integer salary) { super(); this.name = name; this.gender = gender; this.birth = birth; this.salary = salary; } }
在提交时就可以时间格式写成这样
备注:如果是Java8类型的日期。比如LocalDate、LocalTime、LocalDateTime。一般借用@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)方式。但是具体情况具体在分析