2

我正在使用 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)
4

3 回答 3

0

日期应在 en_US 语言环境中指定,因此您需要交换月份和日期:

date.A=7/24/17
于 2017-11-09T08:38:11.510 回答
0

我需要仔细查看 yml 文件才能给出最佳答案。但这是我的预感-

预期的格式是MM/dd/YY.

你能试着把 yml 文件改成这样吗

..

date
  A=07/24/17
..
于 2017-07-27T12:23:08.927 回答
0

我认为您需要为此编写转换器,如下所示:

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;
    }
}
于 2017-07-27T13:12:33.493 回答