Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Android 分析日期异常-不可解析的日期_Android_Date_Simpledateformat - Fatal编程技术网

Android 分析日期异常-不可解析的日期

Android 分析日期异常-不可解析的日期,android,date,simpledateformat,Android,Date,Simpledateformat,我想这是一个很小的问题,但我看不出有什么问题: SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); String strDate = "2014-12-07T13:35:08.030Z"; try { return format.parse(strDate); } catch (ParseException e) { e.printStackTrace(); Log.e

我想这是一个很小的问题,但我看不出有什么问题:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
String strDate = "2014-12-07T13:35:08.030Z";
try
{
    return format.parse(strDate);
}
catch (ParseException e)
{
    e.printStackTrace();
    Log.e("Problem with formatting date", strDate);
}
我得到了java.text.ParseException:无法解析的日期:“2014-12-07T13:35:08.030Z”(偏移量19处)

你知道这里还有什么不对吗?

你只是忘记了在SimpleDateFormat中Z的(')单引号:

“Z”而不是Z

您只是忘记了在SimpleDateFormat中围绕Z的(')单引号:

“Z”而不是“Z”

根据,Android SimpleDataFormat似乎不支持Z符号(它不是文字,而是UTC+00:00的有效ISO标识符和同义词)

因此,图案符号Z仅理解-0800之类的偏移,而不理解“Z”。仅仅使用撇号是不够的。如果输入以“Z”结尾,则还需要将时区显式设置为UTC各自的GMT+00:00。诸如此类(未经测试):

根据报告,Android SimpleDataFormat似乎不支持Z符号(它不是文字,而是UTC+00:00的有效ISO标识符和同义词)

因此,图案符号Z仅理解-0800之类的偏移,而不理解“Z”。仅仅使用撇号是不够的。如果输入以“Z”结尾,则还需要将时区显式设置为UTC各自的GMT+00:00。诸如此类(未经测试):

(“yyyy-MM-dd'T'HH:MM:ss.SSS'Z')?只要看看这个链接,它可能会解决您的问题亲爱的
(“yyyy-MM-dd'T'HH:MM:ss.SSS'Z')?只要看看这个链接,它可能会解决你的问题亲爱的
String input = "2014-12-07T13:35:08.030Z";
SimpleDateFormat format;

if (input.endsWith("Z")) {
  format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
  format.setTimeZone(TimeZone.getTimeZone("GMT"));
} else {
  format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
}

try {
    return format.parse(input);
} catch (ParseException e) {
    e.printStackTrace();
    Log.e("Problem with formatting date", input);
}