解析Android中的异常

时间:2015-09-16 05:00:07

标签: android datetime date-format simpledateformat

我使用SimpleDateFormat类来解析日期,如下所示:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

但是,获取Parse异常错误如下:

java.text.ParseException: Unparseable date: "2015-09-16 10:21 AM" (at offset 16)

我在SimpleDateFormat类中检查了另一种格式作为参数: “yyyy-MM-dd HH:mm:ss a”但是,仍然会出现同样的错误。

是否还有其他日期时间格式我必须作为SimpleDateFormat类的参数传递?

3 个答案:

答案 0 :(得分:2)

如果您的输入没有第二个值,请尝试此操作。

 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm a");

如果它还有第二个值,那么使用这个

 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");

否则高于一个

For More detail....

答案 1 :(得分:2)

正如您在上述评论中所述,您使用TimePicker来选择日期时间并进行解析。你说你也想要第二个。但显然,TimePicker不包括第二个。那你怎么知道用户想要的第二个呢?我想0.您可以将字符串插入正确的位置以使其工作。在你的情况下,你应该在索引16中插入“:00”。只需使用StringBuilder

StringBuilder builder = new StringBuilder("2015-09-16 10:21 AM");
builder.insert (16, ":00");

答案 2 :(得分:1)

TimePicker窗口小部件不提供年 - 月 - 日,它只提供小时和分钟

SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");

要获得年月日,您必须使用DatePicker小部件