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をインスタンス化するときに寛大なメソッドを設定すると、次のように機能します。

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 に答える