我创建了此功能来解析日期,但是却产生了异常(exception):无法解析的日期:“星期五IST 2014年10月10日23:11:07”(偏移量为20)。请帮忙,因为我无法弄清楚这段代码有什么问题。

public Date parseDate() {
    String strDate ="Fri Oct 10 23:11:29 IST 2014";
    String newPattern = "EEE MMM dd HH:mm:ss Z yyyy";
    SimpleDateFormat formatter = new SimpleDateFormat(newPattern);
    try {
        Date date = formatter.parse(strDate);
        return date;
    } catch (java.text.ParseException e) {
        e.printStackTrace();
    }
    return null;
}

最佳答案

对分析器使用语言环境:

    SimpleDateFormat formatter = new SimpleDateFormat(newPattern, Locale.US);

这应该可以解决您的问题。至少对于您的示例,它对我有用。

编辑:

看来Android和IST时区确实存在问题。我可以使用上述模式解析Android上的任何时区,但不能解析IST。

如果字符串中存在IST时区,则可以快速修改时区部分。
这对我也适用于Android:
    String strDate = "Fri Oct 10 23:11:29 IST 2014";
    strDate = strDate.replace(" IST ", " GMT+0530 ");
    String newPattern = "EEE MMM dd HH:mm:ss Z yyyy";

    SimpleDateFormat formatter = new SimpleDateFormat(newPattern, Locale.ENGLISH);

关于java - 不可解析的日期: "Fri Oct 10 23:11:07 IST 2014" (at offset 20),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27375489/

10-10 08:29