SpringBoot系列---【如何优雅的格式化实体类中的日期的返回格式?】
前提
url: jdbc:mysql://localhost:33306/jiulong?characterEncoding=utf-8&serverTimezone=Asia/Shanghai
推荐写法:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; 注意:1.此时就不能用java中的new Date()添加创建时间了,要用LocalDateTime.now(); 2.@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")注解中加不加时区都不影响了, 之所以要加@JsonFormat,是因为默认格式"2021-01-08T01:03:53"中带个“T”,加注解就是为了去掉这个“T”。
方法一
springboot默认使用jackson解析
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
方法二
//直接在属性上使用@JsonFormat注解 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime;
注意:若存在时差,则用@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
方法三
public class Date2LongSerializer extends JsonSerializer<Date> { @Override public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { jsonGenerator.writeNumber(date.getTime() / 1000); } } //在实体类属性上加上
@JsonSerialize(using = Date2LongSerializer.class) private Date updateTime;
愿你走出半生,归来仍是少年!