我有一个非常简单的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或scala中的错误吗?
我的Java版本:jdk1.6.0_26 我的scala版本:2.9.1
答案 0 :(得分:2)
你需要这样做:
class StrictDateFormat(pattern: String) extends java.text.SimpleDateFormat(pattern) {
setLenient(false)
}
(调用正确的超类构造函数java.text.SimpleDateFormat(pattern)
而不是java.text.SimpleDateFormat
)