9e88c53052
生产数据库容器(1Panel-mariadb-ZOpD)的 system_time_zone 是 UTC,而数据源 URL 写着 serverTimezone=Asia/Shanghai:JDBC 会话时区是 UTC、驱动却按 +08 解析服务端返回的字面量, 于是 timestamp 列(分类管理、文章、系统日志、审核流、AI 对话等)读出来整体早 8 小时。 数据源 URL 增加 connectionTimeZone=%2B08:00&forceConnectionTimeZoneToSession=true, 连接建立时把会话时区设为 +08:00,与 JVM 默认时区、spring.jackson.time-zone 保持一致。 用偏移量而非命名时区,避免 MariaDB 容器未加载时区表时报 Unknown or incorrect time zone。 附 sql/20261026_timezone_8h_check.sql:部署后的时区自检、分类管理核对, 以及 datetime 列历史 UTC 字面量与教师建号行的时间回填模板(默认注释未执行)。