docker Java mysql,返回的时间差 8 小时

zzlyzq · 2024-8-12 14:45:12 · 66 次点击
各位大佬,俺们开发过程中遇到一个问题,涉及到 docker java mysql ,其中在分享物联网设备的过程中,时间差了 8 个小时,保存到 mysql 的时间是 utc 时间,java 获取的也是 utc 时间,而 java 返回给用户的时间会通过调用 mysql 过程中自动设置在 utc8 时间。

为啥会差 8 小时呢,请大佬指导。
举报· 66 次点击
登录 注册 站外分享
6 条回复  
ZeawinL 小成 2024-8-12 14:46:31
时区。
建议用服务器时间,而不是 now()之类的函数。
StinkyTofus 小成 2024-8-12 14:48:38
在程序启动的时候设置一下属性。

// 设置默认时区为 UTC+8 (东八区)
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
dengshen 小成 2024-8-12 14:55:15
1 楼正解! 把本机的时区配置文件带进去容器
XiLingHost 小成 2024-8-12 15:01:34
所有时间都用 uint64 来存,只存 timestamp ,在展示时再附加时区信息转换为人类可读时间
julyclyde 小成 2024-8-12 16:41:29
@zzlyzq 我猜你这个时区文件做的不对

我记得,应该是 localtime 符号连接指向 Asia/Shanghai 是正确做法吧
yuanmomo 小成 2024-8-13 17:57:45
@XiLingHost ve 这个才是正确的做法。
返回顶部