From 6c63133fd85fe6da020f323ab1d135485275a6bf Mon Sep 17 00:00:00 2001 From: htlee Date: Thu, 19 Feb 2026 18:39:43 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20toLocalDateTime=20=EB=B3=80=ED=99=98=20?= =?UTF-8?q?=EA=B0=95=ED=99=94=20=E2=80=94=20=ED=83=80=EC=9E=85=20=EB=B6=88?= =?UTF-8?q?=EC=9D=BC=EC=B9=98=20=EB=A1=9C=EA=B9=85=20+=20toString=20?= =?UTF-8?q?=ED=8F=B4=EB=B0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- .../controller/MonitoringController.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/gc/mda/signal_batch/monitoring/controller/MonitoringController.java b/src/main/java/gc/mda/signal_batch/monitoring/controller/MonitoringController.java index e5c76ac..816d762 100644 --- a/src/main/java/gc/mda/signal_batch/monitoring/controller/MonitoringController.java +++ b/src/main/java/gc/mda/signal_batch/monitoring/controller/MonitoringController.java @@ -228,14 +228,23 @@ public class MonitoringController { return quality; } - private static LocalDateTime toLocalDateTime(Object raw) { - if (raw instanceof java.sql.Timestamp ts) { - return ts.toLocalDateTime(); - } else if (raw instanceof java.time.OffsetDateTime odt) { - return odt.toLocalDateTime(); - } else if (raw instanceof LocalDateTime ldt) { - return ldt; + private LocalDateTime toLocalDateTime(Object raw) { + if (raw == null) return null; + if (raw instanceof LocalDateTime ldt) return ldt; + if (raw instanceof java.sql.Timestamp ts) return ts.toLocalDateTime(); + if (raw instanceof java.time.OffsetDateTime odt) return odt.toLocalDateTime(); + if (raw instanceof java.time.Instant inst) { + return inst.atZone(java.time.ZoneId.systemDefault()).toLocalDateTime(); + } + log.warn("Unexpected temporal type: {} (class={})", raw, raw.getClass().getName()); + try { + String s = raw.toString(); + if (s.contains("+") || s.endsWith("Z")) { + return java.time.OffsetDateTime.parse(s).toLocalDateTime(); + } + return LocalDateTime.parse(s.replace(" ", "T")); + } catch (Exception e) { + return null; } - return null; } }