一、总结:
注解@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:是需要转换的时间日期的格式。
这里我两个注解都同时使用了,因为我既需要取数据到前台,也需要前台数据传到后台,都需要进行时间格式的转换,可以同时使用的。
拓展:【注解使用】使用@JsonFormat注解踩过的坑:https://blog.csdn.net/weixin_44299027/article/details/110677354
完结!