2014-10-27 40 views
1

十月26日新的时区已设置(-1小时)。于是我就在24日这条命令:时区更新程序不起作用

java -jar tzupdater.jar --update 

现在(10:19)时间不会用新时区的工作:

public static void main(String[] args) { 
     Date d = new Date(); 
     System.out.println(d); 

    } 

输出:

周一11年10月27日:19:35 MSK 2014

我试图再次运行该命令:

你有相同的版本嵌入一个

版本:

tzupdater版本1.4.8-B01 JRE时间段数据版本:tzdata2014h 嵌入式时间段数据版本: tzdata2014h

怎么了?

回答

0

您必须确定您希望更新哪个jre。它可以在你的主机上多于一个jre。在我的窗口中,我至少有两个jre -s:/ Program Files/jdk/jre和/ Program Files/jre文件夹。 你必须检查所有jre/lib文件夹。文件夹jre_home/lib/zi应该更新(注意文件夹时间)。 我不知道更新者如何选择jre_home,但我知道它并不总是更新你期望的jre-s。 在Windows中,你似乎可以把更新的zi文件夹放到jre_home/lib中,但在Unix中我不确定。

1

您似乎不明白什么是时区,以及此命令的作用。

时区不是小时偏移量。时区就像“欧洲/巴黎”。 TimeZone封装了偏移量,以及管理偏移量变化的规则。例如,如果您使用“欧洲/巴黎”时区,则夏季时间为UTC + 2,冬季则为UTC + 1。时区知道规则,并知道从夏季到冬季的时间。

由于这些规则经常发生变化,您可以根据您执行的命令更新它们。因此,该命令不会更改从UTC + 2到UTC + 1的偏移量。它只是更新Java安装,以便将自上次更新后引入的新规则考虑在内。