Исключение времени выполнения при попытке проанализировать время даты с помощью Joda DateTimeFormatter
Я выполните следующий код, который дает мне
"Exception in thread "main" org.joda.time.IllegalFieldValueException: Cannot parse "12/17/2017 23:10": Value 23 for clockhourOfHalfday must be in the range [1,12]"
DateTimeFormatter dt = DateTimeFormat.forPattern("MM/dd/yyyy hh:mm");
System.out.println(dt.parseDateTime("12/17/2017 23:10"));
Если я буду парсить "12/17/2017 02:10"
затем он успешно выполняет.
Итак, в основном, мне нужно проанализировать время с 24-часовым форматом.
спасибо заранее.
2 ответов
h
для половины дня в JodaTime, как вы можете видеть в исключении.
Вам нужно использовать H
(или k
):
DateTimeFormatter dt = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm");
System.out.println(dt.parseDateTime("12/17/2017 23:10"));
больше информации в DateTimeFormat API-интерфейс.
Это может быть достигнуто с помощью простого формата даты тоже.
DateFormat readDate = new SimpleDateFormat( "MM/dd/yyyy HH:mm");
Date date = readDate.parse("12/17/2017 23:10");
DateFormat writeDate = new SimpleDateFormat( "MM/dd/yyyy HH:mm");
System.out.println(writeDate.format(date));