今回は自分が良くAndroid開発で間違えて、
このエラーなんだっけなぁと毎回忘れる部分のメモです。
java.text.ParseException: Unparseable date:
こんなエラーが出る場合の対処法です。
JavaでDateとStringの相互変換はSimpleDateFormatを利用すると思うのですが、
普通にSimpeDateFormatを使うと、こんなコードになります。
String date = "Sun, 10 Jun 2012 15:16:03 +0900"; SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); df.parse(date);
ちなみに、これは特定の条件下でエラーになります。
何かと言うと、Android端末のLocaleがJAPANになっていると、
"Sun"の時点でパースエラーが起きて読み込めません。
日本語の状態でEEEは日〜土の漢字の曜日で読み込もうとします。
なので、
String date = "Sun, 10 Jun 2012 15:16:03 +0900";
SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US);
df.parse(date);
と、SimpleDateFormatにLocaleを指定するとうまく読み込んでくれます。
今回は自分の良くする間違いをメモ程度に残しておきました。
ParseExceptionが出る方は参考にどうぞ。
0 件のコメント:
コメントを投稿