今天在检查测试数据的时候发现数据库中的数据时间不对,少了8个小时。
猜想是时区问题。
于是检查系统时间
[root@izbp ~]# timedatectl
Local time: Mon 2018-09-10 17:13:10 CST
Universal time: Mon 2018-09-10 09:13:10 UTC
RTC time: Mon 2018-09-10 17:13:10
Time zone: Asia/Shanghai (CST, +0800)
系统时区和时间都是正确的。一脸无奈~
然后觉得可能是jdk的时区问题了,想改,但是发现用的是docker。那是不是docker的时间不对或者说docker 用的jdk时区不对?
然后一番查资料,解决方案总结有两种
1、在Dockerfile中指定JAVA_OPTS
ENV JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT+08"
2、在Dockerfile为容器建立系统时区链接
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone