2017-09-12 4 views
0

저는 centos 서버에 tomcat 서비스가 있는데 시간이 중요한 서비스입니다. JVM은 어제 jdk 8을 설치할 때까지 정확하게 시간대를 얻었습니다.jdk 설치 후 JVM의 시간대가 올바르지 않습니다. 8

수정하려면 "-Duser.timezone = GMT + 8"을 매우 Java 명령 다음에 추가해야합니다. 매우 불편합니다.

나는 내 서버에서 date 명령을 사용하며 정확한 시간대를 제공합니다. 그래서 나는 매우 궁금합니다. 1.이 문제의 원인은 무엇입니까 2. 어떻게 해결할 수 있을까요?

대단히 감사합니다.

[[email protected] test]$ date +'%Y%m%d %H:%M:%S %z' 
20170920 15:01:20 +0800 
[[email protected] test]$ java -Duser.timezone=GMT+08 javatest/Test 
2017-09-20 15:01:34 
GMT+08:00 
GMT+08:00 
[[email protected] test]$ java javatest/Test 
2017-09-20 07:01:48 
Greenwich Mean Time 
GMT 
[[email protected] 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) 

그리고 내 자바 테스트 코드는 다음과 같습니다 :

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()); 
+0

JDK8 버전을 System.setProperty("user.timezone", "GMT+8"); 사용하거나 환경 변수로 추가 할 수 있습니까? 시스템 시간대는 무엇입니까? Java가 기본적으로 표시되는 시간대는 무엇입니까? –

+0

문제를 설명 할 수있는 테스트 케이스를 제공하십시오. – Fairoz

+0

조언을위한 thx, 여기에 테스트 케이스가 온다 – Jim

답변

0

당신은 출력의 예를 게시 할 수

여기에 시험 정보를 제공? 해당 형식이 2016-07-11T11:01:25.498Z 인 경우 해당 UTC 시간이 아마도 UTC 시간으로 종료됩니다 (UTC가 UTC로 끝나는 경우).

당신은 그래서 기본적으로 "GMT + 8"

+0

안녕 pls 지금 질문을 봐 – Jim

관련 문제