Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不可解析的日期错误_Java_Android_Parseexception - Fatal编程技术网

Java 不可解析的日期错误

Java 不可解析的日期错误,java,android,parseexception,Java,Android,Parseexception,我有这个 java.text.ParseException:不可解析日期:“2016年4月21日星期四18:00:00 +0000“(偏移量26处) 使用新的SimpleDataFormat时(“E,dd MMMM yyy hh:mm:ss a”,Locale.ROOT) 为什么会这样 编辑: 由于解析模式的原因,这是正确的答案 SimpleDateFormat f = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ROOT

我有这个

java.text.ParseException:不可解析日期:“2016年4月21日星期四18:00:00 +0000“(偏移量26处)

使用新的SimpleDataFormat时(“E,dd MMMM yyy hh:mm:ss a”,Locale.ROOT)

为什么会这样

编辑:

由于解析模式的原因,这是正确的答案

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

而且,当区域设置为
ROOT
ENGLISH
时,Android也会以某种方式给出错误。一切正常。

您使用了错误的格式。您应该使用
EEE,dd-MMM-yyyy-HH:mm:ss Z
而不是
E,dd-MMMM-yyyy-HH:mm:ss a

以下是代码片段:

public static void main (String[] args) throws Exception
{
    String foo = "Thu, 21 Apr 2016 18:00:00 +0000";
    SimpleDateFormat f = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ROOT);
    System.out.println(f.parse(foo));
}
输出:

Thu Apr 21 18:00:00 GMT 2016

使用
EEE,dd MMM yyy HH:mm:ss Z

我不明白为什么会发生这种情况,但它在emulator上工作,但在实际设备上失败-给出此错误。顺便说一句,它在asynktask中,我不明白为什么会发生这种情况,但它在emulator上工作,但在实际设备上失败——给出了这个错误。顺便说一下,这是一项艰巨的任务