java 程序在服务器出现时区错误问题(使用Date,LocalDateTime,ZonedDateTime都不正确)
排查
查询系统时区信息
timedatectl status
打印java的时区信息
import java.util.TimeZone;public class CheckTimeZone {public static void main(String[] args) {TimeZone defaultTimeZone = TimeZone.getDefault();System.out.println("Default TimeZone ID: " + defaultTimeZone.getID());System.out.println("Default TimeZone Display Name: " + defaultTimeZone.getDisplayName(false, TimeZone.SHORT));}
}
如果时区不一致,那恭喜你,你的问题即将解决
修改jvm的时区即可
运行 jar 的时候加上 -Duser.timezone=Asia/Shanghai
java -Duser.timezone=Asia/Shanghai -jar your-application.jar