一般に開発では日付変換が必要になるので、これが面倒なので、 @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;