Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 土耳其爪哇时区(拒绝夏令时)_Java_Spring - Fatal编程技术网

Java 土耳其爪哇时区(拒绝夏令时)

Java 土耳其爪哇时区(拒绝夏令时),java,spring,Java,Spring,土耳其最近(2016年9月6日)决定永久留在土耳其。该法案取消了原定于2016年10月30日04:00:00结束的DST。时钟没有改变 土耳其的utc时间介于+2和+3之间,因此现在它将停留在+3。 在这里你可以看到 …在维基百科页面上,以及这篇每日新闻文章中 这里他们讨论了,但我在Spring Boot中有一个应用程序 这就是我约会的方式 这显示了现在的小时数13.50,但现在是14.50。因为我们在+3 我能做什么 我不想使用utc+3,因为明年他们会说,“让我们再次使用+2-+3切换到

土耳其最近(2016年9月6日)决定永久留在土耳其。该法案取消了原定于2016年10月30日04:00:00结束的DST。时钟没有改变

土耳其的utc时间介于+2和+3之间,因此现在它将停留在+3。 在这里你可以看到

…在维基百科页面上,以及这篇每日新闻文章中

这里他们讨论了,但我在Spring Boot中有一个应用程序

这就是我约会的方式

这显示了现在的小时数
13.50
,但现在是
14.50
。因为我们在+3

我能做什么

我不想使用utc+3,因为明年他们会说,“让我们再次使用+2-+3切换到夏令时概念”。所以我不能冒险

我不能在未来几周内更改代码,它将在几周后保持永久性

你建议什么是永久性的

还有,我如何制作java?因为对于我的测试linux机器,请看这个

puapp@PU-APP-01:~$java版本 程序“java”可在以下软件包中找到: *默认jre *gcj-4.8-jre-headless *openjdk-7-jre-headless *gcj-4.6-jre-无头 *openjdk-6-jre-headless 尝试:sudo-apt-get-install puapp@PU-APP-01:~$

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

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

但在本地,我有java

vegan@vegan:~$java-版本 java版本“1.8.0_111” Java(TM)SE运行时环境(build 1.8.0_111-b14) Java HotSpot(TM)64位服务器虚拟机(构建25.111-b14,混合模式) vegan@vegan:~$

但是本地的并不重要。linux服务器非常重要

对于我们的主机,有java

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:~$ 

最好的方法是更新JDK/JRE,如果它包含新的时区信息。如果未包括,正确的官方方法应该是使用更新时区信息

TZUpdater工具允许您使用最新的时区数据更新已安装的Java开发工具包(JDK)和Java运行时环境(JRE)软件,以适应不同国家/地区的夏时制(DST)变化。Oracle依靠IANA的时区数据库公开提供的时区数据

Oracle建议您使用最新的Oracle Java SE平台JDK或JRE更新版本作为提供时区数据更新和其他产品改进(如安全修复)的首选方法。要查看哪个JDK或JRE更新版本包含您所在地区的更新时区数据,请参阅JRE软件中的时区数据版本。但是,如果您无法使用Oracle的最新JDK或JRE更新版本,或者最新版本上的时区数据不是最新可用的,则TZUpdater工具提供了一种更新时区数据的方法,同时保持其他系统配置和依赖项不变

可在上下载(在“附加资源”一节下)

可以找到有关您的特定案例的信息(您还可以看到这些信息在JRE版本中不可用):

土耳其从EET/EEST(+02/+03)转换为永久+03,生效日期为2016-09-07。 新闰秒2016-12-31 23:59:60 UTC根据IERS公告C 52

有关如何使用该工具的说明,请参见说明:

TZUpdater工具修改用于执行该工具的JDK/JRE软件实例。每次执行都会修改JDK/JRE软件的单个映像。要将该工具管理到JDK/JRE软件的多个实例,请参阅系统范围使用一节

例如,下面的命令将使用最新信息更新JRE,其中应包括土耳其夏令时的更改

java-jar tzupdater.jar-l


请注意,有一个电流:

由于IANA维护的tzdata捆绑包中的格式更改,TZUpdater工具在解析tzdata2016.tar.gz资源捆绑包时无法确定tzdata版本

按照以下链接中的步骤操作,以便能够使用IANA提供的最新tzdata捆绑包。修正后,答案的这一部分将被删除。

答案正确,应被接受。任何关心土耳其时间的人都需要立即更新与Java捆绑的
tz
数据库

tzdata2016g
版本有您需要的土耳其更改

土耳其从EET/EEST(+02/+03)转换为永久+03,生效日期为2016-09-07

而tzdata2016h版本在20世纪80年代和90年代对土耳其进行了一些修复

在土耳其,1986-1990年的过渡时间是标准时间01:00而不是02:00,1994年春季的过渡时间是3月20日,而不是3月27日

但是当前的JavaSE8更新111和112具有更早的版本
tzdata2016f

tz
自Java 8更新111起未更新 我在下面的实验表明,土耳其政府在最后一刻对时区进行的这一改变并没有包括在与Oracle的最新Java更新Java 8 update 111捆绑在一起的版本中

获取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[欧洲/伊斯坦布尔]
zdt+1:2016-10-30T01:00+03:00[欧洲/伊斯坦布尔]
zdt+2:2016-10-30T02:00+03:00[欧洲/伊斯坦布尔]
zdt+3:2016-10-30T03:00+03:00[欧洲/伊斯坦布尔]
zdt+4:2016-10-30T03:00+02:00[欧洲/伊斯坦布尔]
zdt+5:2016-10-30T04:00+02:00[欧洲/伊斯坦布尔]
zdt+6:2016-10-30T05:00+02:00[欧洲/伊斯坦布尔]

我们的spring boot docker应用程序在linux机器上。如果土耳其再次开始使用日光,应该
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 ) );