From ac360fe22ae21722c3af52ef727c8456f5f100e7 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期日, 06 九月 2026 01:04:33 +0800
Subject: [PATCH] 修复三类数据查询的数据库时间转换

---
 battery-business/src/main/java/com/battery/business/service/impl/TestDataQueryServiceImpl.java |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/battery-business/src/main/java/com/battery/business/service/impl/TestDataQueryServiceImpl.java b/battery-business/src/main/java/com/battery/business/service/impl/TestDataQueryServiceImpl.java
index dc6bcca..1834b94 100644
--- a/battery-business/src/main/java/com/battery/business/service/impl/TestDataQueryServiceImpl.java
+++ b/battery-business/src/main/java/com/battery/business/service/impl/TestDataQueryServiceImpl.java
@@ -1,6 +1,8 @@
 package com.battery.business.service.impl;
 
 import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -52,9 +54,11 @@
     private List<Map<String, Object>> normalizeApiTimes(List<Map<String, Object>> rows)
     {
         if (rows == null) return List.of();
+        // DATETIME(3) 保存 UTC,JDBC 返回的无时区值也必须按 UTC 转换,不能采用服务器默认时区。
         for (Map<String, Object> row : rows)
             row.replaceAll((key, value) -> value instanceof Date date ? date.getTime()
-                    : value instanceof Instant instant ? instant.toEpochMilli() : value);
+                    : value instanceof Instant instant ? instant.toEpochMilli()
+                    : value instanceof LocalDateTime time ? time.toInstant(ZoneOffset.UTC).toEpochMilli() : value);
         return rows;
     }
 }

--
Gitblit v1.7.1