我觉得这是一个微不足道的问题,但我没有发现任何问题:
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: Unparseable date: "2014-12-07T13:35:08.030Z"(at offset 19)
知道这里还有什么问题吗?
最佳答案
根据documentation Android-SimpleDateFormat 似乎不支持 Z 符号(它不是文字而是有效的 ISO 标识符和 UTC+00:00 的同义词)。
因此模式符号 Z 只能理解 -0800 之类的偏移量,而不能理解“Z”。仅仅使用撇号是不够的解决方法。如果您的输入以“Z”结尾,您还需要将时区明确设置为 UTC 各自的 GMT+00:00。类似的东西(未测试):
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);
}
关于android - 解析日期异常 - 无法解析的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27457843/