java->web
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)一般版本问题或依赖冲突不起作用
解决:
spring:
jackson:
serialization:
write-dates-as-timestamps: false
date-format: yyyy-MM-dd HH:mm:ss
这个配置会在java对象传输给web前端的时候对日期的字段进行序列化
java<–>db
如果是数据库里的日期格式化,请你确保您的字段格式是按照以下要求
1.对象类型Date
2.数据库字段类型datetime
前端传递的值是2023-07-02T11:48:56.000Z java后端使用的是Date 如何在后端配置使得两端传输的时候不会因为类型而报错
我一般都喜欢直接加两个序列化器
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import org.springframework.boot.jackson.JsonComponent;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@JsonComponent
public class CustomDateDeserializerConfig extends JsonDeserializer<Date> {
private static final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
@Override
public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
String dateString = jsonParser.getText();
try {
return dateFormatter.parse(dateString);
} catch (ParseException e) {
throw new IOException("Failed to parse date: " + dateString, e);
}
}
}
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.springframework.boot.jackson.JsonComponent;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
@JsonComponent
public class CustomDateSerializerConfig extends JsonSerializer<Date> {
private static final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
@Override
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
String formattedDate = dateFormatter.format(date);
jsonGenerator.writeString(formattedDate);
}
}
yml配置
spring:
jackson:
date-format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
serialization:
write-dates-as-timestamps: false
deserialization:
fail-on-unknown-properties: false
property-naming-strategy: SNAKE_CASE
annotations:
enabled: true