Мое приложение вызывает канал Twitter и канал блога, оба, конечно, содержат дату публикации. Когда мой телефон настроен на английский язык, он работает, когда я переключаюсь на голландский или немецкий язык, он не работает Данный код даже не вызывает языковой стандарт, и входные значения также не зависят от языкового стандарта.
Код обидчика:
твиты - это JSONObject, содержащий полный канал Twitter.
final SimpleDateFormat formatter =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
final SimpleDateFormat parser =
new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy");
for (int i = 0; i < tweets.length(); i++) {
final JSONObject tweet = tweets.getJSONObject(i);
// The following line is where the failure occurs:
values.put(KEY_TWEET_DATE, formatter.format(parser.parse(tweet
.getString("created_at"))));
}
Это работает до тех пор, пока у меня английский язык.
Как только я переключаюсь на немецкий или голландский (мое приложение содержит переводы для этих двух языков, я еще не пробовал ни одного другого), я получаю ошибку, подобную этой:
WARN/System.err(28273): java.text.ParseException: Unparseable date: Wed Jun 29 10:55:41 +0000 2011
WARN/System.err(28273): at java.text.DateFormat.parse(DateFormat.java:645)
WARN/System.err(28273): at squirrel.DeaddropDroid.DeaddropDB.updateTwitter(DeaddropDB.java:1453)
«Непарсируемая дата» - это правильная дата в ожидаемом формате. Моя строка формата предназначена для анализа этой точной даты. И, как я уже сказал, когда я переключаю свой телефон на английский язык, он работает просто отлично. Это тот же код: ошибка возникает, даже когда я переключаю языковой стандарт во время работы приложения, и исчезает, когда я переключаю обратно языковой стандарт.