java HOUR_OF_DAY在不同的系统上有所不同

时间:2010-09-28 13:31:29

标签: java

我在Windows和Solaris计算机上运行相同的Java代码。部分代码会产生不同的结果:

Calendar cd = Calendar.getInstance();
int hour = cd.get(Calendar.HOUR_OF_DAY);
int off = cd.get(Calendar.ZONE_OFFSET)/3600/1000;
System.out.println("current hour " + hour + ", zone offset " + off);

如果我在当地时间16:15运行此代码,Windows机器将返回16作为小时,区域偏移量为2(我在GMT + 2时区,此时夏令时已开启)。在Solaris上,我得到15小时和相同的区域偏移。 Solaris上的“date”命令显示时间正确并显示正确的时区。 Solaris运行Java 1.4,Windows运行1.5,但我不确定这是否有所不同。任何想法为什么结果都不同?

1 个答案:

答案 0 :(得分:4)

我猜想有一台机器没有配置夏令时。

查询字段Calendar.DST_OFFSET应该以毫秒为单位返回夏令时偏移量。