복붙노트

[SPRING] 칠면조 자바 표준시 (일광 절약 시간제)

SPRING

칠면조 자바 표준시 (일광 절약 시간제)

터키는 최근 (2016 년 9 월 6 일) DST (일광 절약 시간제)에 영구적으로 머물기로 결정했습니다. 이 법은 2016 년 10 월 30 일 04:00:00에 예정된 DST 결말을 취소했습니다. 시계는 변경되지 않았습니다.

터키는 +2에서 +3 utc 사이에 있으므로 이제 +3이 유지됩니다. 여기에서 볼 수 있습니다.

https://www.timeanddate.com/time/change/turkey/ankara?year=2016

... Wikipedia 페이지, Time in Turkey 및 Hurriyet Daily News 기사에서 터키는 1 년 내내 일광 절약 시간제를 구현했습니다.

여기에서 그들은 토론하지만 Spring Boot에서 응용 프로그램을 가지고 있습니다.

Android TimeZone 터키 GMT

cmntWrapper.setCreatedAtString(cmnt.getCreatedAt().
now(ZoneId.of(Constants.TURKEY_ZONE)).
format(DateTimeFormatter.ofPattern(Constants.DATE_TIME_FORMAT)));

이건 내 데이트하는 법이야.

이제 시간은 13.50이지만 지금은 14.50입니다. 우리는 +3에 있기 때문에.

내가 무엇을 할 수 있을지?

나는 내년에 "+2 + 3을 일광 절약 개념으로 전환하는 것을 다시 허용"하기 때문에 utc +3을 사용하고 싶지 않습니다. 그래서 위험은 없습니다.

앞으로 몇 주 안에 코드를 변경할 수 없으며 몇 주 후에 영구적으로 유지됩니다.

영구히 무엇을 제안합니까?

또한 어떻게 자바를 만들 수 있습니까? 왜냐면 내 테스트 리눅스 머신 때문에 이걸 봐라.

puapp @ PU-APP-01 : ~ $ java 버전 'java'프로그램은 다음 패키지에서 찾을 수 있습니다.  * default-jre  * gcj-4.8-jre-headless  * openjdk-7-jre-headless  * gcj-4.6-jre-headless  * openjdk-6-jre-headless 시도해보십시오 : sudo apt-get install puapp @ PU-APP-01 : ~ $

puapp @ PU-APP-01 : ~ $ whereis java java : / usr / share / java puapp @ PU-APP-01 : ~ $

puapp @ PU-APP-01 : ~ $ whereis java java : / usr / share / java

하지만 로컬 나는 java 있습니다.

완전 채식주의 자 : 완전 채식주의 자 : ~ $ java 자바 버전 "1.8.0_111" Java (TM) SE 런타임 환경 (빌드 1.8.0_111-b14) Java HotSpot (TM) 64 비트 서버 VM (빌드 25.111-b14, 혼합 모드) 완전 채식주의 자 : 완전 채식주의 자 : ~ $

그러나 지역은 중요하지 않습니다. 그 리눅스 서버가 중요합니다.

우리 주 기계의 경우 자바

produp@Produp-app-01:~$ java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
produp@Produp-app-01:~$ 

해결법

  1. ==============================

    1.새로운 표준 시간대 정보가 포함 된 경우 JDK / JRE를 업데이트하는 것이 좋습니다. 포함되지 않은 경우이를 수행하기위한 정확하고 공식적인 방법은 표준 시간대 업데이터 도구를 사용하여 표준 시간대 정보를 업데이트하는 것입니다.

    새로운 표준 시간대 정보가 포함 된 경우 JDK / JRE를 업데이트하는 것이 좋습니다. 포함되지 않은 경우이를 수행하기위한 정확하고 공식적인 방법은 표준 시간대 업데이터 도구를 사용하여 표준 시간대 정보를 업데이트하는 것입니다.

    공식 Java SE 다운로드 사이트 (추가 리소스 섹션 참조)에서 다운로드 할 수 있습니다.

    특별한 경우에 대한 정보는 여기에서 찾을 수 있습니다 (여기서 JRE 릴리스에서는 정보를 볼 수 없습니다).

    이 도구를 사용하는 방법은 다음 두 가지 방법으로 설명됩니다.

    예를 들어, 아래 명령은 JRE를 최신 정보로 업데이트합니다. 여기서 터키 일광 절약 시간제 변경 사항이 포함되어야합니다.

    2016g 출시 이후 현재 알려진 문제가 있음을 유의하십시오.

    IANA에서 최신 tzdata 번들을 사용할 수 있으려면 아래 링크의 단계를 따르십시오. 이 문제가 해결되면이 섹션의 답변이 삭제됩니다.

  2. ==============================

    2.Magnilex의 답변은 정확하며 받아 들여야합니다. 터키에서 시간을 염려하는 사람은 즉시 Java 번들로 번들 된 tz 데이터베이스를 업데이트해야합니다.

    Magnilex의 답변은 정확하며 받아 들여야합니다. 터키에서 시간을 염려하는 사람은 즉시 Java 번들로 번들 된 tz 데이터베이스를 업데이트해야합니다.

    시간대 데이터 파일의 버전 tzdata2016g에는 필요한 터키에 대한 변경 사항이 있습니다.

    그리고 버전 tzdata2016h에는 1980 년대와 1990 년대 터키에 대한 몇 가지 수정 사항이 있습니다.

    그러나 현재의 Java SE 8 Update 111 및 112에는 이전 버전 인 tzdata2016f가 있습니다.

    아래의 실험에서 터키 정부가 실시한이 시간대 변경은 Java 8 Update 111의 최신 Java 업데이트와 함께 번들로 제공되는 tz 데이터베이스에 포함되지 않았습니다.

    DST가 이전에 끝날 예정이었던 날에 첫 순간을 얻으십시오. 그런 다음 한 번에 한 시간 씩 추가하여 시계가 점프하는지 확인하십시오.

    System.out.println ( "java.version: " + System.getProperty ( "java.version" ) );
    
    ZoneId z = ZoneId.of ( "Europe/Istanbul" );
    ZonedDateTime zdt = ZonedDateTime.of ( 2016 , 10 , 30 , 0 , 0 , 0 , 0 , z );
    
    System.out.println ( "    zdt: " + zdt );
    System.out.println ( "zdt + 1: " + zdt.plusHours ( 1 ) );
    System.out.println ( "zdt + 2: " + zdt.plusHours ( 2 ) );
    System.out.println ( "zdt + 3: " + zdt.plusHours ( 3 ) );
    System.out.println ( "zdt + 4: " + zdt.plusHours ( 4 ) );
    System.out.println ( "zdt + 5: " + zdt.plusHours ( 5 ) );
    System.out.println ( "zdt + 6: " + zdt.plusHours ( 6 ) );
    

    실행할 때. 오전 4시에 시계는 다시 03:00시를 반복합니다. 이것은 DST가 끝났음을 의미했지만, 우리가 새로운 터키 법률을 최신 상태로 유지해야하는 것은 아닙니다.

    java.version: 1.8.0_111
        zdt: 2016-10-30T00:00+03:00[Europe/Istanbul]
    zdt + 1: 2016-10-30T01:00+03:00[Europe/Istanbul]
    zdt + 2: 2016-10-30T02:00+03:00[Europe/Istanbul]
    zdt + 3: 2016-10-30T03:00+03:00[Europe/Istanbul]
    zdt + 4: 2016-10-30T03:00+02:00[Europe/Istanbul]
    zdt + 5: 2016-10-30T04:00+02:00[Europe/Istanbul]
    zdt + 6: 2016-10-30T05:00+02:00[Europe/Istanbul]
    
  3. from https://stackoverflow.com/questions/40400793/java-timezone-in-turkey-rejected-daylight-saving by cc-by-sa and MIT license