Linux系统与Tomcat时区不一致的解决方法总结(全)

编程入门 行业动态 更新时间:2024-10-09 07:24:32

Linux系统与Tomcat时区不一致的<a href=https://www.elefans.com/category/jswz/34/1770089.html style=解决方法总结(全)"/>

Linux系统与Tomcat时区不一致的解决方法总结(全)

问题:通常情况下,我们会遇到linux系统时区与其上部署的tomcat时区不一致的问题。最常见的是系统时间为正常的CST中国标准时区(东八区),而tomcat日志时间却比系统时间慢了8个小时。

一、准备工作

在将解决问题之前,首先要确定系统当前时间是正确的。这里可以通过linux的date命令查看当前时间及时区。

1. 如果结果与本地时间或自己想要的效果一致 

   这种情况可以确定问题是出在tomcat上。可以通过步骤二中所列方法进行解决。

2. 如果结果与本地时间或自己想要的效果不一致

    这种情况需要先将系统校正为正确的时区。再通过步骤二的方法解决,具体操作如下:

 (1)修改时区,以我们使用的北京时间(东八区)为例

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    上述命令将系统中存储的时区配置信息覆盖为本地时区配置。其中/usr/share/zoneinfo中存储了所有时区配置信息,可以根据需要为本地配置。值得注意的是北京时间的时区有多种表示方式

CST
Asia/Shanghai
GMT+08

(2)修改完时区后,再次使用date命令查看系统时间是否正确

     解决了系统时区不正确问题后,如果系统时间和tomcat日志时间仍然不一致,则是tomcat启动时读取时区配置造成的。具体解决方法如下

二、系统时区与Tomcat时区(JVM)不一致的解决方法

原因分析:tomcat服务器启动时,JVM获取时区信息出现问题。如,获取不到时区信息,会使用默认的UTC时区。

1.使用java代码设置默认时区

如果明确想要使用的时区,可以在应用程序初始化时,通过加载配置方式为整个项目设置默认时区。如在各种监听器初始化方法中为应用程序设置默认时区。代码如下:

final TimeZone zone = TimeZone.getTimeZone("Asia/Shanghai"); //获取中国时区
TimeZone.setDefault(zone); //设置时区

    缺点:每个应用程序都需要设置一次

2.设置tomcat的启动参数:时区参数

-Duser.timezone=Asia/Shanghai

   如果是Java SE程序,可以在eclipse启动程序时,通过右键Main方法 —> Run Configurations —> Arguments —> VM arguments 中添加上述参数

   但是,因为我们是web应用,程序是通过Tomcat服务器启动的,所以需要更改tomcat启动配置文件。操作如下:

   修改catalina.sh文件,该文件位于tomcat/bin下。在文件开头添加如下配置

export JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai"

3.修改/etc/sysconfig/clock配置信息

linux中,JRE每次都从/etc/sysconfig/clock配置文件中获取时区信息,所以可以编辑/etc/sysconfig/clock配置文件添加时区信息,如果没有则新建

ZONE="Asia/Shanghai"   #时区
UTC=false      #设置为false,硬件时钟不与UTC时间一致
ARC=false      #仅用于alpha表明使用ARC。

4.将时区信息添加为环境变量TZ

# 编辑配置文件
vi /etc/profile
# 添加如下信息
export TZ="Asia/Shanghai"
# 使配置生效
source /etc/profile

 

 

 

更多推荐

Linux系统与Tomcat时区不一致的解决方法总结(全)

本文发布于:2024-02-05 12:30:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1745397.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:解决方法   时区   系统   Linux   Tomcat

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!