日付文字列解析例外の処理方法
次のコードに示すように、日付文字列を Date オブジェクトに解析すると、例外が発生することがあります。
String target = "Thu Sep 28 20:29:30 JST 2000"; DateFormat df = new SimpleDateFormat("E MM dd kk:mm:ss z yyyy"); Date result = df.parse(target);
このコードは以下をスローします例外:
java.text.ParseException: Unparseable date: "Thu Sep 28 20:29:30 JST 2000"
このエラーの理由は、解析に使用されたパターンが日付文字列の形式と一致しないことです。具体的には、パターンでは 3 文字の日の略称 (EEE) と 3 文字の月の略称 (MMM) が必要ですが、日付文字列には 2 文字の日の略称 (E) と完全な月名 (Sep) が含まれています。
問題を修正するには、日付の形式と一致するようにパターンを更新する必要があります。 string:
DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
さらに、ロケールを指定すると、プラットフォームのデフォルトのロケールが英語でない場合でも、日と月の略語が正しく解釈されるようになります。
修正されたパターンを使用すると、コードは日付文字列が正常に解析され、現在のタイムゾーンに合わせて調整された、文字列で指定された日付と時刻を表す Date オブジェクトが返されるようになりました:
Thu Sep 28 07:29:30 BOT 2000
以上が日付文字列を解析する際の ParseException を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。