jdk7u25引入了时区错误吗?

时间:2014-02-14 16:06:18

标签: java timezone java-7

经过9个月的不活动后,我选择更新我的软件,包括从jdk7u17更新到u51。我的一些测试开始失败。这是一个:

public void testSimpleDateFormatDefaultTimeZone() throws ParseException {
    TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    long millis = sf.parse("1927-12-31 23:54:08").getTime()
        - sf.parse("1927-12-31 23:54:07").getTime();
    assertEquals(millis, 353000L);


    sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
    millis = sf.parse("1927-12-31 23:54:08").getTime()
        - sf.parse("1927-12-31 23:54:07").getTime();
    assertEquals(millis, 353000L);


    sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    millis = sf.parse("1927-12-31 23:54:08").getTime()
        - sf.parse("1927-12-31 23:54:07").getTime();
    assertEquals(millis, 1000L);
}

它传递给u17,并在第一个以u25开头的assertEquals失败。你还好。从u25开始,millis计算为1000。

1 个答案:

答案 0 :(得分:0)

正如评论中已经指出的那样,这不是一个错误,而是2年前已经部署到jdk6的未报告的错误修正。