My blog

Add intelligent tagline here

[Android] SimpleDateFormatでEEEやMMMがparseできない

文字列からDateを導き出すには、SimpleDateFormatを使うことが多いと思いますが、 英語圏でよく使われる、

Sun, 07 Nov 2010 05:24:39 +0000

などの表現を

"EEE, dd MMM yyyy HH:mm:ss Z"

でparseしようとしたら、ParseExceptionが出てしまいました。 APIドキュメントを読んでも、EEEという表現で正しいし、AM/PMを意味するaaを使っても同じくParseExceptionが出ました。

結構悩んだのですが、結論から言うと、Localeを設定する必要があったようです。

SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ENGLISH);

というようにしたら上手く動きました。

Javaの人にとっては常識かもしれませんが、つまずいたのでここに記しておきます。