일반적으로 개발 시 날짜 변환을 포함하는 것이 골치 아픈 일이므로 @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;
시간대 변환 방법 사용(사용):
jackson은 국제 표준 시간 GMT에 따라 시간 형식을 지정하기 때문에 중국의 기본 시간대는 CST 시간대를 사용하므로 둘 사이의 차이는 8시간입니다. East Eighth District(베이징 시간)이므로 서식을 지정할 때 시간대를 지정해야 합니다.
/**
* 创建时间
*/
@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;