现象:容器里 date 是 UTC,业务日志时间对不上。

第一处:容器环境变量 TZ=Asia/Shanghai。解决了大部分。

第二处:数据库。MySQL 容器自己的时区是 UTC,存进去的时间偏 8 小时。要挂 /etc/localtime 或者设 default-time-zone。

第三处:应用层。Java 应用需要 -Duser.timezone=Asia/Shanghai,PHP 需要 php.ini 里 date.timezone。

三处都改完才对。只改容器的 TZ,数据库和应用还是各按各的来。

建议:新项目一开始就把这三处写进部署脚本,别等出问题再查。时间错乱这种问题,往往一两周后才在报表里被发现。

主楼