考虑以下片段
public class Test1 {
public static void main(String[] args) throws ParseException, java.text.ParseException {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
f.setLenient(false);
String dateStr = "2008-01-23 00:00:00.0";
Date date=f.parse(dateStr);
System.out.println(date);
}
}
这在 java 1.6 中工作正常并给出输出 Wed Jan 23 00:00:00 IST 2008
在 java 1.7 的情况下它给出异常
Exception in thread "main" java.text.ParseException: Unparseable date: "2008-01-23 00:00:00.0"
at java.text.DateFormat.parse(DateFormat.java:357)
我认为 JAVA 1.7 的行为是正确的,因为 00:00:00.0 不属于 hh:mm:ss 格式(1-12 小时格式)
我的假设是否正确,1.6 有错误并在 1.7 中得到纠正?
最佳答案
是的,此行为已随 Java 7 发生变化。可以在 Oracle website 上找到错误修复文档。 .错误 ID 是 JDK-4396385。
关于java - Java 1.7 中 SimpleDateFormat 的行为变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726862/