【SpringBoot】@JsonFormatアノテーションの使い方 - 日付の変換

一般に開発では日付変換が必要になるので、これが面倒なので、 @JsonFormat アノテーションを使うと自動的に変換できるのでとても便利です。

依存関係を使用する

pom ファイルには次の構成を追加する必要があります

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.6</version>
</dependency>

使い方

簡易ログ変換方法

/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;

/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;

タイムゾーン変換方法を使用する (これを使用します):
ジャクソンは国際標準時間 GMT に従って時刻をフォーマットするのに対し、中国のデフォルトのタイムゾーンは CST タイムゾーンを使用するため、両者の差は 8 時間です。東八区 (北京時間) なので、フォーマット時にタイムゾーンを指定する必要があります

/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private Date createTime;

/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private Date updateTime;

他の実装

変換クラスをカスタマイズできます


import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author cf
 * @projectName 
 * @date 2023/4/11下午 3:09
 */
public class JsonDateSerializer extends JsonSerializer<Date> {
    
    
    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    @Override
    public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)
            throws IOException, JsonProcessingException {
    
    
        String value = "";
        if (null != date) {
    
    
            value = dateFormat.format(date);
        }
        gen.writeString(value);
    }
}

それを引用してください

    @JsonSerialize(using = JsonDateSerializer.class)
    private Date updateTime;

おすすめ

転載: blog.csdn.net/daohangtaiqian/article/details/130083453