java实体类序列化和反序列化的时候时间字段格式化@DateTimeFormat和
@Jso。。。
⼊参格式化(⽐如前端请求的时候传了⼀个json字符串,controller处使⽤实体类接收)
此时会发⽣⼀次json字符串的反序列化,如果碰巧json字符串中有时间字符串存在,那么在反序列化的时候可能会报错
这时,就可以使⽤ Spring 的 @DateTimeFormat 注解格式化参数,来解决上述问题。
import org.springframework.format.annotation.DateTimeFormat
public class DateVo {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date date;
public void setDate(Date date){
this.date = date;
}
public Date getDate(){
return date;
}
}
出参格式化(⽐如controller处返回给前端序列化对象的时候)java时间日期格式转换
注意:
jackson在序列化时间时是按照国际标准时间GMT进⾏格式化的,⽽在国内默认时区使⽤的是CST时区,两者相差8⼩时。
@JsonFormat 注解不是 Spring ⾃带的注解,所以使⽤该注解前需要添加 jackson 相关的依赖包。当然,如果是 SpringBoot 项⽬就不需要⾃⼰⼿动添加依赖了,因为在 spring-boot-start-web 下已经包含了 jackson 相关依赖。
@JsonFormat(
pattern ="yyyy-MM-dd HH:mm:ss",
timezone ="GMT+8"
)
private Date date;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。