3 回答

TA貢獻1869條經(jīng)驗 獲得超4個贊
您可以使用此注釋:
@JsonFormat(pattern?=?"YYYY-MM-DD")
您可以在此處進一步閱讀有關(guān)驗證日期格式時自定義錯誤消息的信息:?自定義錯誤消息

TA貢獻1900條經(jīng)驗 獲得超5個贊
您應該創(chuàng)建自定義反序列化器,覆蓋反序列化方法以拋出自定義錯誤并在@JsonDeserialize 中使用它
public class CustomDateDeserializer
extends StdDeserializer<LocalDate> {
private static DateTimeFormatter formatter
= DateTimeFormatter.ofPattern("YYYY-MM-DD");
public CustomDateDeserializer() {
this(null);
}
public CustomDateDeserializer(Class<?> vc) {
super(vc);
}
@Override
public LocalDate deserialize(
JsonParser jsonparser, DeserializationContext context)
throws IOException {
String date = jsonparser.getText();
try {
return LocalDate.parse(date, formatter);
} catch (DateTimeParseException e) {
throw new RuntimeException("Your custom exception");
}
}
}
用它:
@JsonDeserialize(using = CustomDateDeserializer.class)
LocalDate dateOfBirth;

TA貢獻1765條經(jīng)驗 獲得超5個贊
像這樣的東西。
@Column(name = "date_of_birth")
@DateTimeFormat(iso = DateTimeFormatter.ISO_LOCAL_DATE)
@JsonFormat(pattern = "YYYY-MM-dd")
private LocalDateTime dateOfBirth;
DateTimeFormatter Java 文檔
https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
添加回答
舉報