日期类型参数处理
@JsonFormat
这个注解来自Jackson库,在Spring MVC框架中广泛使用Jackson库处理HTTP请求和相应中的Json数据。 正如它名字那样,Json Format,它只对Json数据生效,在Json数据转为Java实体或Java实体转为Json数据时,用于格式化数据,当然它不止可以格式化日期。 接收前端日期字符串:Controller
中要使用 @RequestBody
用于将前端传递的 Json
数据转为实体类,并且实体类中的日期类型字段添加注解 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
。 返回日期转为字符串给前端:Controller中使用 @RestController
或方法上使用 @ResponseBody
返回Json数据给前端。 需要注意的是:pattern指定的格式需与前端传参的格式一致
@DateTimeFormat
如果我的接口不是接收 Json
数据,而是接收表单提交的数据呢,那么 @JsonFormat
就没效果了,就需要使用 @DateTimeFormat
这个注解了。 这个注解来自Spring框架,用于接收前端参数将String类型的日期时间转换为java.util.Date类型,但它也不止支持java.util.Date,还支持LocalDate、LocalDateTime等等,但它不支持java.sql.Date,如果是java.sql.Date则无需加这个注解也可以接收,因为Spring会帮你转换,加了这个注解反而会报错。 总之,涉及到Json的用@JsonFormat,不涉及Json的用@DateTimeFormat