1. 程式人生 > 其它 >@DateTimeFormat 和 @JsonFormat 註解完成日期引數接收和格式化輸出

@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;