package com.gqy.common.config; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class CustomDateDeserializer extends JsonDeserializer { private static final String[] DATE_FORMATS = { "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", "yyyy-MM-dd'T'HH:mm:ss.SSS+08:00", "yyyy-MM-dd HH:mm:ss" }; public Date deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { String dateStr = p.getText(); for (String format : DATE_FORMATS) { try { SimpleDateFormat dateFormat = new SimpleDateFormat(format); return dateFormat.parse(dateStr); } catch (ParseException ignored) { ignored.printStackTrace(); // Try next format } } throw new IOException("Unable to parse date '" + dateStr + "' with any of the supported formats"); } }