无法解释的日期:"2014年10月10日星期二23:11:07"(抵消20日)

Pri*_*hal 4 java android date unparseable

我已经创建了这个函数来解析日期,但这给出了异常:Unparseable date:"Fri Oct 10 23:11:07 IST 2014"(在偏移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;
}
Run Code Online (Sandbox Code Playgroud)

Udo*_*ski 6

使用解析器的区域设置:

    SimpleDateFormat formatter = new SimpleDateFormat(newPattern, Locale.US);
Run Code Online (Sandbox Code Playgroud)

这应该可以解决您的问题.至少它适用于我的例子.

编辑:

看起来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);
Run Code Online (Sandbox Code Playgroud)


Pri*_*hal 2

 SimpleDateFormat formatter = new SimpleDateFormat(newPattern);
 formatter.setLenient(true);
Run Code Online (Sandbox Code Playgroud)

//将格式化程序设置为宽松即可解决问题

谢谢各位帮忙....