LocalDate с заполнителем свойства Spring

Я работаю с Spring Boot и заполнителями свойств. У меня есть файл свойств со значением: date.A=24/07/17, У меня есть класс, и я использую @Value аннотация:

@Value("${date.A}")
private LocalDate dateA;

Но я получаю ошибку во время выполнения при запуске gradle build integrationTest:

Caused by: java.time.format.DateTimeParseException: Text '24/07/17' could not be parsed: Invalid value for MonthOfYear (valid values 1 - 12): 24
    at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1855)
    at java.time.LocalDate.parse(LocalDate.java:400)

3 ответа

Дата должна быть указана в локали en_US, поэтому вам нужно поменять местами месяц и день:

date.A=7/24/17

Я думаю, что вам нужно написать конвертер для этого следующим образом:

public LocalDate convertToDateObject(String value) throws ConversionException {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
    try {
        return LocalDate.parse(value, formatter);

    } catch (DateTimeParseException ex) {
        return null;
    }
}

Мне нужно более внимательно посмотреть на файл YML, чтобы дать лучший ответ.. Но вот моя догадка-

Ожидаемый формат MM/dd/YY.

Можете ли вы попробовать изменить YML-файл на что-то вроде этого

..

date
  A=07/24/17
..
Другие вопросы по тегам