| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | } |