@DateTimeFormat和@JsonFormat使用介绍和使用时注意事项
由于在使用时遇到了问题,记录一下
@DateTimeFormat
简介
DateTimeFormat用于将请求的日期参数,转换为Java的日期类型的
应用场景
如果日期是这种格式,或者是其他格式,非标准格式(yyyy-MM-dd HH:mm:ss)需要使用@DateTimeFormat注解来声明日期的类型,对于标准格式则不需要声明,SpringMVC会对其进行封装
请求参数
@DateTimeFormat配置
使用时需注意
- 此方式只针对于请求参数的格式非json格式的,如果是json的则不会生效,需要使@JsonFormat
- 对于标准格式会自动转换**(标准格式yyyy-MM-dd HH:mm:ss)**
@JsonFormat
简介
@JsonFormat是针对于json格式日期类型的,将json中的日期转换为java类型
应用场景
请求参数
@JsonFormat配置
使用时需注意
- 此方式只针对于请求参数的格式为json格式的,其他请求体类型则无效
- 需要设置时区为GMT+8,如果不设置,可能会出现时间不准确问题,GMT 就是格林威治标准时间的英文缩写(Greenwich Mean Time 格林尼治标准时间),是世界标准时间.gmt-8 是格林威治时间+8小时,是北京时间.
- 贴了此注解后,如果将此对象返回为json格式的,则注解也会生效
两者区别
@DateTimeFormat
- 用于请求体非json格式的请求
@JsonFormat
- 用于请求体为json格式的请求
- 将包含此注解的对象返回给前端时,也会沿用此注解的格式 (返回类型为json格式时)