0

我有一个非常简单的 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

4

1 回答 1

2

你需要做:

class StrictDateFormat(pattern: String) extends java.text.SimpleDateFormat(pattern) {
  setLenient(false)
}

(调用正确的超类构造函数java.text.SimpleDateFormat(pattern)而不是java.text.SimpleDateFormat

于 2013-02-13T08:58:50.417 回答