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