M87星云

导航

@DateTimeFormat 和 @JsonFormat 注解完成日期参数接收和格式化输出

入参格式化

使用 Spring 的 @DateTimeFormat 注解格式化参数,来解决上述问题

public class DateVo {
    // 接收日期参数
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date date;
 
    public void setDate(Date date){
        this.date = date;
    }

    public Date getDate(){
        return date;
    }

}

 

输出格式化

使用 jackson 的 @JsonFormat 注解

public class DateVo {
     // 输出格式
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date date;
 
    public void setDate(Date date){
        this.date = date;
    }

    public Date getDate(){
        return date;
    }
}

时间格式正确,但实际上当前时间是 “2018-08-01 22:32:57” ,早了8个小时。因为,jackson在序列化时间时是按照国际标准时间GMT进行格式化的,而在国内默认时区使用的是CST时区,两者相差8小时。

@JsonFormat(
    pattern = "yyyy-MM-dd HH:mm:ss",
    timezone = "GMT+8"
)
private Date date;

 

posted on 2021-09-01 11:04  挽留匆匆的美丽  阅读(601)  评论(0编辑  收藏  举报