@JsonFormat与@DateTimeFormat注解的使用

一、总结:

  注解@JsonFormat:主要解决后端向前端传参时的时间格式转换的问题;

  注解@DateTimeFormat:主要解决前端向后端传参时的时间格式转换的问题。

二、实体类:

@Data
public class ProductMessage {
 
    @ExcelField("编号")
    private int id;
    /**
     * 客户姓名
     */
    @ExcelField("客户姓名")
    private String customerName;
    /**
     * 客户电话
     */
    @ExcelField("客户电话")
    private String customerPhone;
    /**
     * 客户邮箱
     */
    @ExcelField("客户邮箱")
    private String customerEmail;
    /**
     * 产品意向
     */
    @ExcelField("产品意向")
    private String productWant;
    /**
     * 创建时间
     */
    @ExcelField(value = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 客户状态:0,未联系, 1,已联系
     */
    @ExcelField("客户状态:0,未联系, 1,已联系")
    private String customerStatus;
}

三、解释说明:

1、 @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”)

pattern:是需要转换的时间日期的格式;

timezone:是将时间设置为东八区(中国大陆用的是东八区的时间),避免时间在转换中有误差(如果不填写,会有八个小时的误差)。

JsonFormat 默认的时区是 Greenwich Time, 默认的是格林威治时间,而我们是在东八区上,所以需要在默认时区的基础上加上8个时区。

2、@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)

pattern:是需要转换的时间日期的格式。

这里我两个注解都同时使用了,因为我既需要取数据到前台,也需要前台数据传到后台,都需要进行时间格式的转换,可以同时使用的。

你可能感兴趣的:(Java,Spring,java,后端)