我的应用程序正在调用 Twitter 提要和博客提要,当然两者都包含发布日期。当我的手机设置为英语语言环境时,它可以工作,当我切换到荷兰语或德语时,它会失败。有问题的代码甚至不调用语言环境,输入值也独立于语言环境。
违规代码:
tweets 是一个 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)
“无法解析的日期”是正确的日期,采用预期的格式。我的格式字符串旨在解析该确切日期。如前所述,当我将手机切换到英语语言环境时,它工作得很好。这是相同的代码:即使我在应用程序运行时切换语言环境也会发生错误,并且当我切换回语言环境时会消失。