今天换了一台服务器,发现java应用的时区不是一致,导致相差了12个小时。
换的服务器为debian系统,以前是centos。新的jdk为21,以前为17。不知道是哪个原因导致的。
1.先检查系统时间
timedatectl
我这里是对的,如果你的Time zone不是东八区,就先设置为这个。
2.检查数据库的时间,可以在启动的时候添加以下代码
&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
本人不是这个问题导致,因为数据库服务器没有更换。
3.重点来了,jvm时间。
// 在启动java程序时加参数-Duser.timezone=GMT+8
nohup java -Dfile.encoding=utf-8 -Duser.timezone=GMT+8 -Dspring.profiles.active=prod -jar api.jar &
重新启动后问题解决!!