10月26日新时区设定(-1小时)。所以我在24日运行了这个命令:
java -jar tzupdater.jar --update
现在(10:19)时间不适用于新时区:
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);
}
输出:
星期一10月27日11:19:35 MSK 2014
我试图再次运行该命令:
您拥有与嵌入式版本相同的版本
版本是:
tzupdater版本1.4.8-b01 JRE时区数据版本:tzdata2014h 嵌入式时区数据版本:tzdata2014h
出了什么问题?
答案 0 :(得分:1)
您似乎无法理解时区是什么,以及此命令的作用。
时区不是小时偏移量。 TimeZone就像"欧洲/巴黎"。 TimeZone封装了偏移量以及控制偏移量变化的规则。例如,如果您使用时区"欧洲/巴黎",则您将在夏季时间为UTC + 2,冬季时间为UTC + 1。 TimeZone了解规则,知道从夏天到冬天的时间。
由于这些规则经常更改,您可以通过执行的命令更新它们。因此,该命令不会将UTC + 2的偏移量更改为UTC + 1。它只是更新您的Java安装,因此会考虑自上次更新以来引入的新规则。
答案 1 :(得分:0)
您必须确定您希望更新哪个jre。它可能不止一个主机上的jre。在我的Windows中,我至少有两个jre-s:in / Program Files / jdk / jre和/ Program Files / jre文件夹。 您必须检查所有jre / lib文件夹。应更新文件夹jre_home / lib / zi(注意文件夹时间)。 我不知道updater如何选择jre_home,但我知道它并不总是更新你期望的jre-s。 在Windows中,您似乎可以将更新的zi文件夹放到jre_home / lib中,但在Unix中我不确定。