import com.bjjc.storageMaintenancePC.stock.common.config.CustomDateDeserializer;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;@Data
public class MesTlXyBlMain {@JsonDeserialize(using = CustomDateDeserializer.class)// 格式化日期 2021-01-01 00:00:00和 2021-01-01T00:00:00都可以private Date outboundDate; // 出库日期@JsonDeserialize(using = CustomDateDeserializer.class)// 格式化日期 2021-01-01 00:00:00和 2021-01-01T00:00:00都可以@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date createDatetime; // 创建时间}
自定义序列化器
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;public class CustomDateDeserializer extends JsonDeserializer<Date> {private static final String[] FORMATS = new String[]{"yyyy-MM-dd'T'HH:mm:ss", // ISO 8601 format with T separator"yyyy-MM-dd HH:mm:ss" // space-separated format};@Overridepublic Date deserialize(JsonParser p, DeserializationContext ctxt)throws IOException, JsonProcessingException {String date = p.getText();for (String format : FORMATS) {try {if (format.contains("T")) {// For LocalDateTime parsingLocalDateTime localDateTime = LocalDateTime.parse(date, DateTimeFormatter.ofPattern(format));return java.sql.Timestamp.valueOf(localDateTime);} else {// For Date parsingSimpleDateFormat sdf = new SimpleDateFormat(format);return sdf.parse(date);}} catch (DateTimeParseException | ParseException e) {// Try the next format if this one fails}}throw new IOException("无法解析日期时间:" + date);}
}