2

Joda-Timeライブラリを使用して文字列日付を実際の日付に変換しています。これが最も簡単な解決策のように思えたからです。DateTimeこれを行うためにオブジェクトを使用しています。

 new DateTime(strValue);

しかし、いくつかのフォーマットを挿入すると、例外がスローされます。

java.lang.IllegalArgumentException: Invalid format: "Mon, 30 Sep 2002 01:56:02 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 19:59:01 GMT"
java.lang.IllegalArgumentException: Invalid format: "Mon, 30 Sep 2002 01:52:02 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 17:05:20 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 19:09:28 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 15:01:02 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 23:48:33 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 17:24:20 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 11:13:10 GMT"

これを解決する方法はありますか、または DateTime の代わりに別のものを使用する必要があります。

4

3 に答える 3

5

そのコンストラクターは、ある種の普遍的な日時文字列解釈エンジンではありません。として定義された通常のISO日付のバリアントを想定していYYYY-MM-DDTHH:MM:SS.SSSZます。

次に解析できるフォーマットを説明するフォーマット文字列を定義する必要があります。ここではjavadocのようなものになります!EEE, dd MMM YYYY HH:mm:ss zzz

于 2010-06-10T07:55:16.513 に答える
1

私の記憶が正しければ、ここで使用しているデフォルトのパーサーはISO 8601形式の時刻を想定していますが、これはそうではありません。それ以外の場合は、独自のDateTimeFormatterを作成する必要があります。

于 2010-06-10T07:51:13.597 に答える