博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaWeb 项目与系统时间相差 8 个小时的问题
阅读量:4983 次
发布时间:2019-06-12

本文共 2397 字,大约阅读时间需要 7 分钟。

目录

@(终于等到你)

写在前面

今天记录分享一个排查部署到 Linux 上的 web 项目执行的时间和本地系统时间相差 8 小时的问题

环境:redhat 6.5

考虑有规律的时间差可能和时区不同有关

1 查看 Linux 系统时间和时区

[root@localhost ~]# date2019年 03月 31日 星期日 16:00:32 CST[root@localhost ~]# date -RSun, 31 Mar 2019 16:00:44 +0800[root@localhost ~]# date +"%Z %z"CST +0800

从这里可以确定,系统的时间和时区正常(北京时间,也就是东八区),时区详情请看

2 查看 jvm 时间和时区

2.1 先在 Linux 上某个目录执行 javac ,看 javac 命令是否可用,出现如下显示就可以(中间部分已省略)

[root@localhost test]# javac用法: javac 
其中, 可能的选项包括: -g 生成所有调试信息 -g:none 不生成任何调试信息 -g:{lines,vars,source} 只生成某些调试信息 ...... -X 输出非标准选项的提要 -J
<标记>
直接将
<标记>
传递给运行时系统 -Werror 出现警告时终止编译 @
<文件名>
从文件读取选项和文件名

2.2 编写测试程序

import java.util.TimeZone;import java.util.Date;public class time {    public static void main(String[] args) {        System.out.println("当前时间:"+new Date());        System.out.println("当前默认时区:"+TimeZone.getDefault());    }}

2.3 编译执行

[root@localhost test]# javac time.java [root@localhost test]# ll总用量 8-rw-r--r-- 1 root root 780 3月  31 16:02 time.class-rw-r--r-- 1 root root 239 3月  31 16:00 time.java[root@localhost test]# java time当前时间:Sun Mar 31 08:02:34 CTM 2019当前默认时区:sun.util.calendar.ZoneInfo[id="GTM",offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null]

这里有导其他的包,如果以上命令不好使,则使用如下命令 (中间的点 . 是当前目录的意思)

[root@localhost test]# javac -d . time.java[root@localhost test]# ll总用量 8-rw-r--r-- 1 root root 780 3月  31 16:03 time.class-rw-r--r-- 1 root root 239 3月  31 11:00 time.java[root@localhost test]# java -cp . time当前时间:Sun Mar 31 08:02:40 CST 2019当前默认时区:sun.util.calendar.ZoneInfo[id="GTM",offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null]

这里显然 jvm 的时间比系统的时间早了 8 个小时,且是格林威治的时区,所以这里修改 jvm 的时区即可,这里说下,网上查询说 jvm 的时区默认读取的是硬件时区,目录为 /etc/sysconfig/clock (),查看如下

[root@localhost test]# cat /etc/sysconfig/clock ZONE="Asia/Shanghai"

与网上对比,这里没有下面这两行

UTC=falseARC=false

这里看有人说是没有设置 UTC=false 导致的问题,查看资料说 UTC 指定 BIOS 中保存的时间是否是 GMT/UTC 时间,true 表示 BIOS 里面保存的时间是 UTC 时间,false 表示 BIOS 里面保存的时间是本地时间。

加上后有的机器还是不好使,如果是在 tomcat 下运行的项目,那就重启 tomcat 即可。

如果还不好使,还有修改 tomcat 配置文件的方法,欢迎参考之前的文章:

现在问题基本已解决,以上有些内容是客户现场出现的,所以现在记录时也是凭笔记和记忆回忆的,如有偏差也请不吝赐教。

文章参考:https://blog.csdn.net/liqinghuiyx/article/details/53333284

转载于:https://www.cnblogs.com/charmsongo/p/10632015.html

你可能感兴趣的文章
eclipse输出in thread main_软帝学院Java语言基础之输出HelloWorld—Day02、03
查看>>
asp抓取网页某个标签内的_站内SEO优化具体要做什么?站内操作总汇
查看>>
android后台开启摄像头_前端后台人脸活体人证识别
查看>>
k2p华硕系统怎么设置_停车场系统有哪些设备组成?智能停车场系统怎么设置?...
查看>>
recycleview 自动循环滚动_什么是滚动直线导轨副?
查看>>
python软件英语词汇_自学Python后,人生都开挂了!
查看>>
fiq中断的入口地址_一文看懂STM32F4的总线架构和STM8的中断控制
查看>>
丰田chr优惠5万_汽车gps定位器超长待机远程免安装北斗防盗终身流量2万毫安大容量5元优惠券券后价263元...
查看>>
c# 以下方法存在二义性_C#和VisionPro
查看>>
3dmax如何拆分模型_次世代PBR游戏模型流程到底是怎么样?
查看>>
xy轴坐标图数字表示_办公小技巧:三维展示 用好Excel矩阵图
查看>>
哗哗地照样子写词语_五年级语文期末分类复习,教师整理,学生先练习词语的理解运用...
查看>>
安富莱v6开发板网口通讯_安富莱嵌入式周报第102期:2019.04.082019.04.14
查看>>
引导修复_win7系统如何修复启动项 win7系统启动项修复步骤【图文】
查看>>
4 指针运算_刻刻意练习—第六节Linux 基本指针用法(下)
查看>>
数据库dblink创建语句_SQL高级知识——DBLINK
查看>>
如何释放hdfs中的续租_0550-6.1-如何将普通用户增加到HDFS的超级用户组supergroup
查看>>
网页源码换行正则匹配_Python爬虫从入门到精通——基本库re的使用:正则表达式...
查看>>
ubuntu 自适应分辨率_编写xorg.conf 简单三行解决Ubuntu分辩率不可调的问题
查看>>
python调用mysql数据的接口_python 调用API接口 获取和解析 Json数据
查看>>