使用jdk1.7.0_55,如果时区不是标准的,我将parseposition.errorIndex设为0。

但是使用jdk1.6.0_38对于相同的错误时区格式我得到的parseposition.errorIndex为21

下面是示例:

String date = "13 Jan 2005 21:45:34 ABC";
String format = "dd MMM yyyy HH:mm:ss z";
ParsePosition pp = new ParsePosition(0);
pp.setIndex(0);
SimpleDateFormat sd = new SimpleDateFormat(format,Locale.ENGLISH);
Date d = sd.parse(date,pp);
System.out.println("Error Index "+pp.getErrorIndex());

使用jdk 6的结果:



使用jdk 7的结果



为什么有区别呢?

请帮忙

最佳答案

确实,这是一种回归。在最新的Java 8构建中仍未解决。公开的OpenJDK错误跟踪程序没有列出它,因此我已将其报告给Oracle进行审查。 Oracle对其进行了跟踪,审阅ID为JI-9021556

不幸的是,您无法解决该问题。

关于java - SimpleDateFormat.parse返回errorIndex为0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30076349/

10-13 09:54