一般来说我们在创建对象时会有一些时间方面的属性,比如以下对象
@Data
public class User {
private String id;
private Date expiredTime;
}
通过json传递可能会有些时间方面的问题,比如启动服务后使用postman工具测试接口
有以下几个解决方法:
1、json里的时间属性用格式化的日期时间
例如:2023年4月21日15点31分42秒000毫秒
{
"id":"123",
"expiredTime":"2023-04-21T15:31:42.000+0800"
}
2、json里的时间属性用时间戳
{
"id":"123",
"expiredTime":"1682321792034"
}
3、在对象的属性上添加注解@JsonFormat
@Data
public class User {
private String id;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date expiredTime;
}
ps:属性timezone = "GMT+8" 是因为Date会有时区的问题,比我们时区的时间少了8小时,如果不想加timezone,可以将Date换成java8的新时间类型LocalDateTime,如下:
@Data
public class User {
private String id;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime expiredTime;
}