[Web] @JsonFormat, @DateTimeFormat 和 @Temporal

@JsonFormat, @DateTimeFormat 和 @Temporal

@JsonFormat

一般用于将Java后端的Date对象转换为指定格式的Json数据传递给前端。
一般格式:

//pattern为时间格式,timezone为时区
@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
public Date startDate;

@JsonFormat注解可以用在属性的上方,同样可以用在属性对应的get方法上

@DateTimeFormat

用于后端将前端传来的指定格式的Json字符串数据转换为Date对象,一般格式:

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public Date startDate;

注意

@JsonFormat不仅可以完成后台到前台参数传递的类型转换,还可以实现前台到后台类型转换。

content-typeapplication/json时,优先使用@JsonFormatpattern进行类型转换。而不会使用@DateTimeFormat进行类型转换。

@JsonFormat注解的作用就是完成json字符串到java对象的转换工作,与参数传递的方向无关。

注:以上内容转自博客 @JsonFormat和@DateTimeFormat的作用

@Temporal()

用于将Java Date对象转换为指定格式的数据库Date类型:

  • @Temporal(TemporalType.DATE):映射为java.sql.Date,并保存为SQL的date类型,实体类会转换成日期yyyy-MM-dd的格式。
  • @Temporal(TemporalType.TIME):映射为java.sql.Time,并保存为SQL的time类型,实体类会转换成时间HH:mm:ss的格式。
  • @Temporal(TemporalType.TIMESTAMP):映射为java.sql.TimeStamp,并保存为SQL的datetime类型,实体类会转换成日期时间yyyy-MM-dd HH:mm:ss的格式

参考资料

[1] @JsonFormat和@DateTimeFormat的作用 https://blog.csdn.net/qq_28988969/article/details/82691697
[2] Annotation Type Temporal https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/Temporal.html
[3] JPA @Temporal 注解 https://fanlychie.github.io/post/jpa-temporal-annotation.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值