在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上失败。u21没事。从u25开始,millis被计算为1000。
发布于 2014-02-17 22:42:32
正如注释中已经指出的,这不是一个bug,而是一个未报告的修补程序,它在2年前已经部署到jdk6中。
https://stackoverflow.com/questions/21784002
复制相似问题