web服务器系统时间设置在哪里,部署在Tomcat 服务器中的web应用读取时间与系统时间不一致问题【全面一些】...

本文详细探讨了在Ubuntu和CentOS系统上,当部署在Tomcat服务器中的Java应用与系统时间不一致的问题。问题源于Java程序在启动时未正确读取系统时区。解决方案包括修改系统时区配置文件、校准硬件时间、设置JVM参数-Duser.timezone以及修改Tomcat的catalina.sh脚本,确保应用启动时区为东八区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在部署应用到Ubantu系统上的tomcat服务器中运行,发现操作系统的时间和tomcat中的应用程序获取的时间不一致,总是相差8个小时,但是查看当前操作系统的时区也是CST时区(中国标准时区)。

查看系统的时区:

root@localhost:~# date +"%Z %z"

CST +0800

说明时区没有问题,是东八区时区,但是为什么tomcat启动的时候没有使用我设置好的时区呢?最后我通过java代码直接获取默认时区,发现输出的的是:Etc/UTC,怪不得时间差8小时,如下图:

108045

获取系统默认时区

Java代码获取系统默认时区:

System.out.println(newDate());

System.out.println(System.getProperty("user.timezone"));

在启动java程序的时候添加上-Duser.timezone=Asia/Shanghai参数,时区变对了,其原因是java程序在启动的时候如果没有指定时区,默认会根据System.getProperty("user.timezone")去获取时区操作系统配置文件中配置的时区。

Ubantu操作系统时区配置文件是/etc/timezone,将文件中的内容修改成Asia/Shanghai,保证java程序在启动的时候初始化时区是东八区。

Centos6.X操作系统的时区配置文件是/etc/sysconfig/clock,将文件内容修改为ZONE="Asia/Shanghai",来修正时区为东八区,保证java程序在启动的时候初始化时区是东八区。

修改Linux系统时区,以Ubantu和centos6.x为例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值