打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
解决Linux系统下java程序获取的时间与系统时间不一致的问题

昨天一同事问我在java程序中通过new Date()获取的时间,比当前时间少了16个小时。

一开始以为是linux服务器的系统时间不对,但查看linux服务器系统的时间和时区都没有问题。通过百度 、google查阅资料,找到解决方法。

造成这种问题的原因是:你的操作系统时区跟你JVM的时区不一致。操作系统应该是中国的时区,而JVM的时区不一定是中国时区。
在一个精简的Linux上安装jre,所有的java程序获取的时间都不是系统时间。java程序获取的时间都是GMT时间,而系统是北京时间,是GMT+8,相差8小时。
三种方法可以解决 :
1、在程序中使用java的函数设定时区。
2、在启动java程序时加参数-Duser.timezone=GMT+8
3、修改/etc/sysconfig/clock文件,然后重启服务。 (PS:jre是从/etc/sysconfig/clock这个文件中获取时区信息的)

附/etc/sysconfig/clock文件内容:
#设置上海时区
ZONE="Asia/Shanghai"
UTC=false
ARC=false
## ZONE -- 时区
## UTC -- 表明时钟设置为UTC。
## ARC -- 仅用于alpha表明使用ARC。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
linux系统时间和硬件时钟问题(date和hwclock)
linux系统时间/硬件时间
linux系统修改系统时间与时区
[转]CentOS设置系统时间和时区
Linux的时间设置和同步 (NTP)
Linux 时间同步
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服