Я устанавливаю формат даты, используя следующий код:

@InitBinder
public void initBinder(final WebDataBinder binder) {
    binder.initDirectFieldAccess();

    final SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
    dateFormat.setLenient(false);
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}

И отправка даты в том же формате из jsp, но с ошибкой:

Не удалось преобразовать значение свойства типа [Java.Lang.String] в обязательный тип [Java.Util.Date] для свойства BidDate; Вложенное исключение - Java.Lang.IllegalArgumentException: не удалось проанализировать дату: не разбирается дата: «28.05.2017»

1
Devendra 28 Май 2017 в 20:50

2 ответа

Лучший ответ

Ваш формат даты: dd/MM/yyyy, но вы передаете ему MM/dd/yyyy дату (05/28/2017)

1
Itzik Shachar 28 Май 2017 в 18:00

Из вашего JSP приходит формат даты, отличный от указанного в классе, это означает, что ваш JSP send 05/28/2017 (MM/dd/yyyy) и ваш класс ожидает формат {{ X1 } } .

Итак, вы можете попробовать изменить это:

final SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

За это:

final SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");

Или, в свою очередь, вы можете изменить формат даты в своем JSP

1
JUAN CALVOPINA M 28 Май 2017 в 20:02