linux下如何解决jvm执行取得的时间和系统时间不一致的问题
2017-11-23 22:56
766 查看
今天在和对端系统调试接口的时候发现一个怪问题。用本地环境调试调用接口没有问题,发到服务器上问题就来了参数解析不了。确认了版本没有问题以后,一步步分析。这接口对端要求我们参数通过AES加密传过去,秘钥是一串字符加年月日的时间戳。怀疑是服务器时间不对引起的,但是通过date命令查看发现服务器的时间是正常的。通过打日志才发现通过Java程序代码new Date()取得的时间比服务器的时间少了近8个小时,所以加密后对端解密解密不了。
现在就要办法解决jvm执行取得的时间和系统时间不一致的问题。通过在网上查阅资料,应该是jvm运行的时区设置问题。
解决的办法有几种:
1、在程序中使用java的函数设定时区。
2、在启动java程序时加参数-Duser.timezone=GMT+8
3、调整系统的时区设置
1).vi /etc/sysconfig/clock #编辑时间配置文件
ZONE="Asia/Shanghai"
UTC=false #设置为false,硬件时钟不于utc时间一致
ARC=false
2).ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #linux的时区设置为上海时区
3).ntpdate cn.pool.ntp.org #对准时间
4)./sbin/hwclock --systohc #设置硬件时间和系统时间一致并校准
发现/etc/sysconfig/clock 配置文件的时区还是纽约时间,难怪会差近8个小时咯。可能是装系统的时候没有没有选择时区默认的纽约时间。
通过第三种方法调整好系统的时区设置,果然执行后一切正常。
现在就要办法解决jvm执行取得的时间和系统时间不一致的问题。通过在网上查阅资料,应该是jvm运行的时区设置问题。
解决的办法有几种:
1、在程序中使用java的函数设定时区。
2、在启动java程序时加参数-Duser.timezone=GMT+8
3、调整系统的时区设置
1).vi /etc/sysconfig/clock #编辑时间配置文件
ZONE="Asia/Shanghai"
UTC=false #设置为false,硬件时钟不于utc时间一致
ARC=false
2).ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #linux的时区设置为上海时区
3).ntpdate cn.pool.ntp.org #对准时间
4)./sbin/hwclock --systohc #设置硬件时间和系统时间一致并校准
发现/etc/sysconfig/clock 配置文件的时区还是纽约时间,难怪会差近8个小时咯。可能是装系统的时候没有没有选择时区默认的纽约时间。
通过第三种方法调整好系统的时区设置,果然执行后一切正常。
相关文章推荐
- 【工具用法】如何解决Windows10 和 deepin(Linux)双系统时间的同步问题
- 双系统(Linux + Windows)下时间不一致问题解决方法
- Linux 系统更新命令行模式,出错原因,软件更新器更新失败,系统提示已为最新版本,问题如何解决
- windows和centos双系统时间不一致问题的解决
- Linux与Windows双系统时间不一致的问题
- 如何解决weblogic与系统时间相差8小时的问题
- 关于linux系统和tomcat时间不一致的问题
- 双系统下Windows与Linux时间无法同步问题解决
- ubuntu与windows系统时间不一致问题解决方法
- secureCRT如何连接linux系统(已解决:重点在于在该目录中/etc/sysconfig/network-scripts/ 执行:service network restart)
- linux时间校准设置,解决与本地时间不一致问题
- Windows与Linux(Ubuntu)双系统时间不一致的解决方法
- 如何解决Linux操作系统下时间错误的问题
- Windows与Linux(Ubuntu)双系统时间不一致的解决方法
- 【Ubuntu】Windows与Linux(Ubuntu)双系统时间不一致 (相差8小时) 的解决方法
- 如何解决2012年7月1日增加闰秒后引起linux系统重启问题
- Linux和Windows双系统带来的系统时间问题的解决详述
- 如何解决Xmanager不能登陆Linux系统问题
- 【转】Windows与Linux(Ubuntu)双系统时间不一致的解决方法
- linux时间与Windows时间不一致的解决(linux系统时间比bios快8小时)