diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeDeserializer.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeDeserializer.java index 8702233..ef50157 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeDeserializer.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeDeserializer.java @@ -1,28 +1,19 @@ package cn.iocoder.yudao.framework.common.util.json.databind; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonToken; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import java.io.IOException; import java.time.Instant; -import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.OffsetDateTime; -import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.time.format.DateTimeParseException; /** - * 基于时间戳的 LocalDateTime 反序列化器 - * - * 兼容范围(覆盖前端/接口实际在用的全部格式,避免把"原先能静默入库"的格式变成报错): - * 1. epoch 毫秒:JSON 数字 / 数字字符串(原契约,保持不变) - * 2. 常见日期时间字符串:yyyy-MM-dd HH:mm:ss(含毫秒) - * 3. ISO-8601:yyyy-MM-ddTHH:mm:ss(本地 / 带时区,后者覆盖前端 Date 对象序列化) - * 4. 纯日期:yyyy-MM-dd(当日零点) - * 无法解析时抛清晰错误(含原始值),不再静默落 1970-01-01(消除静默数据损坏)。 + * LocalDateTime 反序列化器,支持毫秒时间戳、常见日期时间字符串和 ISO-8601 日期。 * * @author 老五 */ @@ -30,51 +21,22 @@ public class TimestampLocalDateTimeDeserializer extends JsonDeserializer parse("\"not-a-date\"")); - assertThrows(Exception.class, () -> parse("\"2026/09/11\"")); + } }