DateTimeParseException - текст '19.08.2020' не удалось проанализировать с индексом 0

В настоящее время у меня есть метод, который смотрит на текущую дату и сравнивает с датой ввода. Я использую API java.time. Я получаю исключение DateTimeParseException, когда я не могу проанализировать текстовое значение с индексом 0. Ниже приведен мой код:

public static boolean isWeekStartFormatValid(String value) { 
     value = Util.getTrimmedValue(value);
     //In constants public static final String DATE_FORMAT = "MM/dd/yyyy";
     DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Constants.DATE_FORMAT);
     LocalDate currentDate = LocalDate.now();
     LocalDate inputDate = LocalDate.parse(value, formatter);        
     if(inputDate.isAfter(currentDate) && inputDate.getDayOfWeek() == DayOfWeek.SATURDAY) {
         return true;
     } 
     return false;       
 }

Когда у меня есть входное значение 19.08.2020, я получаю следующую ошибку:

[ошибка] Причина: java.time.format.DateTimeParseException: текст '19.08.2020' не может быть проанализирован с индексом 0 [ошибка] в java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) [ ошибка] в java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) [ошибка] в java.time.LocalDate.parse(LocalDate.java:400)

Я что-то делаю неправильно? Стоит ли попробовать что-то вроде этого? Не знаю, что делать. Любые предложения приветствуются.

1 ответ

Используйте java.time, чтобы получить дату из строки:

LocalDate inputDate = LocalDate.parse(value,DateTimeFormatter.ofPattern("MM/dd/yyyy"));
LocalDate currentDate = LocalDate.now();

Убедитесь, что дата ввода позже текущей даты:

inputDate.isAfter(currentDate)

Проверьте, является ли дата ввода субботой:

inputDate.getDayOfWeek() == DayOfWeek.SATURDAY
Другие вопросы по тегам