Исключение parse в Android

Я использую класс 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 ?

Как вы сказали в приведенных выше комментариях, вы используете TimePicker для выбора даты и анализа. И ты сказал, что тебе тоже нужен второй. Но, видимо, TimePicker не включает второе. Итак, как вы узнаете, во что хочет пользователь? Я думаю, 0. Вы можете вставить строку в правильную позицию, чтобы она работала. В этом случае вы должны вставить «: 00» в индекс 16. Просто используйте StringBuilder !

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

Попробуйте, если ваш вход не имеет второго значения.

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

И если он имеет второе значение, тогда используйте это

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

Иначе выше одного

Подробнее …

Виджет TimePicker не предоставляет год-месяц-день, он обеспечивает только час и минуты

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

Чтобы получить год-месяц-день, вы должны использовать виджет DatePicker