【问题标题】:Java, SimpleDateFormat produces ParseException in German. Works in EnglishJava,SimpleDateFormat 用德语生成 ParseException。英文作品
【发布时间】:2011-06-29 14:13:06
【问题描述】:

我的应用程序正在调用 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)

“无法解析的日期”是正确的日期,采用预期的格式。我的格式字符串旨在解析该确切日期。如前所述,当我将手机切换到英语语言环境时,它工作得很好。这是相同的代码:即使我在应用程序运行时切换语言环境也会出现错误,当我切换回语言环境时会消失。

【问题讨论】:

    标签: java android locale date-parsing


    【解决方案1】:

    如果您需要在特定语言环境中进行解析,请将其传递给 SimpleDateFormat 构造函数:

    final SimpleDateFormat parser =
        new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.US);
    

    这意味着它将始终使用美国语言环境作为日期和月份名称等。

    【讨论】:

    • 第一次评论编辑失败:(我们又来了!-这是一个非常快速的答案:)而且完全正确。刚刚测试它,它的工作原理。我从没想过语言环境会影响那个...谢谢!!
    • @AshishDwivedi:恐怕“不工作”对我来说太模糊了,无法给出任何答案。我怀疑可能值得提出一个新问题,但请确保您提供大量详细信息。
    【解决方案2】:

    你试过了吗:

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

    【讨论】:

    • 日期/时间字符串来自外部来源,因此与我设备的区域设置无关。正如上面接受的答案一样,我确实必须手动设置正确的语言环境来解析该字符串!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    相关资源
    最近更新 更多