首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装jdk 8后,JVM的时区不正确

安装jdk 8后,JVM的时区不正确
EN

Stack Overflow用户
提问于 2017-09-12 09:55:36
回答 1查看 181关注 0票数 0

我在centos服务器上有一个tomcat服务,它是一个时间敏感的服务。在我昨天安装JDK8之前,JVM已经正确获取了时区。

为了解决这个问题,我不得不在java命令后面加上"-Duser.timezone=GMT+8“,这让我觉得非常不方便。

我在服务器上使用date命令,它给出了正确的时区。所以我很好奇: 1.什么会导致这个问题? 2.我该如何巧妙地解决它?

非常提前感谢您。

测试信息如下:

代码语言:javascript
复制
[chiming1@localhost test]$ date +'%Y%m%d %H:%M:%S %z'  
20170920 15:01:20 +0800  
[chiming1@localhost test]$ java  -Duser.timezone=GMT+08 javatest/Test  
2017-09-20 15:01:34  
GMT+08:00  
GMT+08:00  
[chiming1@localhost test]$ java javatest/Test  
2017-09-20 07:01:48  
Greenwich Mean Time  
GMT  
[chiming1@localhost test]$ java -version  
java version "1.8.0_144"  
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)  
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)  

我的java测试代码是:

代码语言:javascript
复制
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
Date d = new Date();  
System.out.println(sdf.format(d));  
TimeZone tz = TimeZone.getDefault();  
System.out.println(tz.getDisplayName());  
System.out.println(tz.getID());  
EN

回答 1

Stack Overflow用户

发布于 2017-09-18 21:50:55

你能发布一个输出的例子吗?如果它的格式为2016-07-11T11:01:25.498Z,那么它可能使用协调世界时的时间(如果它以Z结束,那么它就是世界协调时)。

您可以使用System.setProperty("user.timezone", "GMT+8");或将其添加为环境变量,以使其缺省为"GMT+8“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46166752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档