java->web
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") does not work for general version issues or dependency conflicts
solve:
spring:
jackson:
serialization:
write-dates-as-timestamps: false
date-format: yyyy-MM-dd HH:mm:ss
This configuration will serialize the date field when the java object is transmitted to the web front end
java<–>db
If it is a date format in the database, please ensure that your field format is in accordance with the following requirements
1. Object type Date
2. Database field type datetime
The value passed by the front end is 2023-07-02T11:48:56.000Z The java back end uses Date
I generally like to add two serializers directly
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 configuration
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