2

全て、

以前にJavaを使用してISO8601日付文字列を日付に解析することについて同様の質問をしたことは知っていますが、これはSimpleDateFormatクラスを使用したより具体的な問題です。

記事Wiki ISO8601 Dateを読みました。

顧客から、次の形式の日付と時刻を持つ XML ファイルが提供されました。

2012-08-24T12:15:00+02:00

Wikiの記事によると、これは有効であり、十分に公平です。

この文字列を解析する次のコードを指定すると、「解析不能な日付: "2012-08-24T12:15:00+02:00"」というメッセージとともに ParseException がスローされます。

String inputDate = "2012-08-24T12:15:00+02:00";
String format = "yyyy-MM-dd'T'HH:mm:ssz";

SimpleDateFormat sdf = new SimpleDateFormat(format);
Date d = sdf.parse(inputDate);

問題は、タイムゾーン指定子のコロンにあります。タイムゾーンの +02:00 により、例外がスローされます。+0200 は正常に動作します。

質問は、このタイプの文字列を SimpleDateFormat で解析することは可能ですか?

ありがとう

アンデス

4

2 に答える 2

4

いいえ、SimpleDateFormat を使用して、この日付を解析することはできません (少なくとも jdk 6 以前ではできません)。これには独自のアダプターを自分で作成する必要がありました。

この形式は XML スキーマの有効な部分であるため、DatatypeConverter.parseDateTime()メソッドを使用してこの日付を解析できます。

于 2012-08-30T16:22:29.793 に答える