代码之家  ›  专栏  ›  技术社区  ›  TuGordoBello Sebastian Thees

如何从application.yml映射日期/时间属性?

  •  0
  • TuGordoBello Sebastian Thees  · 技术社区  · 6 年前

    映射application.yml上添加的时间时遇到问题

    bc:
      aop:
        core:
          boot:
            business:
              dailyStartHour: 08:00
              dailyEndHour: 17:00
              lunchStartHour: 12:00
              lunchEndHour: 13:00
    

    @Data
    @Configuration
    @ConfigurationProperties(prefix = "bc.aop.core.boot.business")
    public class BusinessHourProperties {
    
    
        private String dailyStartHour;
        private String dailyEndHour;
        private String lunchStartHour;
        private String lunchEndHour;
    
    
    }
    

    但是当我设置应用程序时抛出了一个解析错误

    Caused by: java.time.format.DateTimeParseException: Text '1020' could not be parsed at index 2
    at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) ~[na:1.8.0_231]
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) ~[na:1.8.0_231]
    at java.time.LocalTime.parse(LocalTime.java:441) ~[na:1.8.0_231]
    at java.time.LocalTime.parse(LocalTime.java:426) ~[na:1.8.0_231]
    at pnc.aop.core.ofac.boot.BusinessDiscussionDate.discussion(BusinessDiscussionDate.java:26) ~[classes/:na]
    

    当我不使用 BusinessHourProperties

    private String dailyStartHour = "08:00";
    private String dailyEndHour = "17:00";
    private String lunchStartHour = "12:00";
    private String lunchEndHour = "13:00";
    

    我没有问题。

    怎么了?

    1 回复  |  直到 6 年前
        1
  •  1
  •   vins    6 年前

    : 在您的yaml值中,由于yaml使用 : 对于键值映射。如图所示,更改yaml中的属性。

    bc:
      aop:
        core:
          boot:
            business:
              dailyStartHour: "08:00"
              dailyEndHour: "17:00"
              lunchStartHour: "12:00"
              lunchEndHour: "13:00"