package org.sxkj.common.utils; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class CustomLocalDateTimeDeserializer extends JsonDeserializer { @Override public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { String text = p.getText(); // 如果是空字符串、null或"null",直接返回null if (text == null || text.trim().isEmpty() || "null".equals(text)) { return null; } try { // 使用标准格式解析 return LocalDateTime.parse(text.trim(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); } catch (Exception e) { try { // 尝试其他常见格式 return LocalDateTime.parse(text.trim()); } catch (Exception ex) { // 如果解析失败,返回null而不是抛出异常 return null; } } } }