我已经在 QA 环境中部署了多次战争,但是当我在 Linux 计算机上执行 date 命令时,它显示了我设置的正确 PST 时间,但在日志中我得到了不同的时间。同样的 WAR 也部署在开发环境中,这完全没问题。
答案1
您会话的时区设置不一定与系统默认时区相同。如果您为会话设置了 TZ 环境变量,请确保也在应用程序启动脚本中设置它,以便在您手动启动应用程序时以及当(或如果)系统自动启动应用程序时都会设置它。启动时的应用程序。
系统日志通常以系统默认时区输出;应用程序日志可以在应用程序启动时在 TZ 环境变量中指定的任何时区输出。如果未设置 TZ 变量,则使用系统默认时区。
用于date -u
验证系统是否具有正确的 UTC 时间信息。如果 UTC 值错误,但本地时间值似乎正确,则时区设置有问题。
系统默认时区是通过将相应的时区文件从/usr/share/zoneinfo
目录复制到 来确定的/etc/localtime
。
在 RedHat 和相关发行版中,还/etc/sysconfig/clock
包含默认时区规范 - 但这实际上不会放默认时区:相反,它只是通知/etc/localtime
操作系统安装程序已将哪个时区文件放入其中。单独更改指定的时区/etc/sysconfig/clock
实际上不会更改系统默认时区:您还必须更新文件/etc/localtime
以匹配。这让几位新系统管理员陷入了困境。