Java 非宽松模式中的SimpleDataFormat在解析有效日期时引发ParseException

Java 非宽松模式中的SimpleDataFormat在解析有效日期时引发ParseException,java,parsing,scala,simpledateformat,Java,Parsing,Scala,Simpledateformat,我有一个非常简单的scala类: class StrictDateFormat(pattern: String) extends java.text.SimpleDateFormat { setLenient(false) } 分析有效日期时,我收到ParseException: new StrictDateFormat("yyyy-MM-dd HH:mm").parse("2013-02-05 16:47") java.text.ParseException: Unparseable d

我有一个非常简单的scala类:

class StrictDateFormat(pattern: String) extends java.text.SimpleDateFormat {
  setLenient(false)
}
分析有效日期时,我收到ParseException:

new StrictDateFormat("yyyy-MM-dd HH:mm").parse("2013-02-05 16:47")
java.text.ParseException: Unparseable date: "2013-02-05 16:47"
at java.text.DateFormat.parse(DateFormat.java:337)
我什么都试过了,它不起作用

令人惊讶的是,如果我在实例化SimpleDataFormat时设置了lenient方法,它可以工作:

new SimpleDateFormat("yyyy-MM-dd HH:mm"){setLenient(false)}.parse("2013-02-05 16:47")
res0: java.util.Date = Tue Feb 05 16:47:00 CET 2013
这毫无意义!这不是我声明的同一个类吗? 为什么在第一种情况下会出现ParseException? 这是java中的bug还是scala中的bug

我的Java版本:jdk1.6.026 我的scala版本:2.9.1

您需要执行以下操作:

class StrictDateFormat(pattern: String) extends java.text.SimpleDateFormat(pattern) {
  setLenient(false)
}
(调用正确的超类构造函数
java.text.simpleDataFormat(模式)
,而不是
java.text.simpleDataFormat