2013-05-02 8 views
5

parseLocalDateのAPIは、 "解析がサポートされていない場合" UnsupportedOperationExceptionをスローします。 「解析がサポートされていない」とはどういう意味ですか?私はソースを見ており、どこでも見つけることができませんUnsupportedOperationExceptionを投げる。 parseLocalDateからこの例外がスローされたシナリオに参加したことがありますか?DateTimeFormatter.parseLocalDateはUnsupportedOperationExceptionをスローします

答えて

5

DateTimeFormatterは2つの用法があります。

  • 印刷日を、
  • 解析日。

あなたがDateTimeFormatter instanceを作成するとき、あなたはそれDateTimePrinterDateTimeParserに渡します。

あなたのフォーマッタはプリンタを持っている、とあなたは解析日付をしたい場合 - UnsupportedOperationExceptionがスローされます。

あなたのフォーマッタはパーサを持っている、とあなたは印刷日付をしたい場合 - UnsupportedOperationExceptionがスローされます。

DateTimeFormatter formatter = new DateTimeFormatter(new DateTimePrinter() 
    { 
    // implements all abstract methods   
    }, null); // this instance has printer and hasn't parser 
    formatter.print(new DateTime()); // works well 
    formatter.parseDateTime("datetimestring"); // throws exeption 
+0

知って良いああ、ありがとうございました。 'org.joda.time.format.DateTimeFormat.forPattern(String)'は、プリンタとパーサーの両方で常に 'DateTimeFormatter'を返します。 'forPattern'で取得された' DateTimeFormatter'は 'UnsupportedOperationException'を正しく投げてはいけませんか? – FGreg

+1

@FGregはい、それは本当です – Ilya

+2

さらに、 'ISODateTimeFormat.dateTime()'と 'ISODateTimeFormat.dateTimeParser()'の2つの同様のインスタンスメソッドがあることに注意してください。後者を使って '.format(dateTime)'を試してみると、この例外が発生します。 – membersound

関連する問題