[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の人にとっては常識かもしれませんが、つまずいたのでここに記しておきます。