在springboot 中的yml中定义字段closingTime的值为18:00:00 为什么@Value注解取出来会转化成64800
时间: 2024-05-01 17:20:55 浏览: 123
Springboot在有参构造方法类中使用@Value注解取值
在 Spring Boot 中,@Value 注解可以用于将配置文件中的值注入到代码中。但是,由于 YAML 中的时间格式是 ISO-8601 格式的时间,例如“18:00:00”,它被解析为一个 Duration 对象,其单位是秒。因此,在你的场景中,"18:00:00" 被解析为 18 小时,0 分钟和 0 秒,这个时间距离午夜有 18 × 60 × 60 = 64800 秒。
如果你需要将时间字符串直接注入到代码中,你可以使用 @DateTimeFormat 注解,它可以将时间字符串转换为 Java 日期对象。例如:
```java
@Value("${closingTime}")
@DateTimeFormat(iso = DateTimeFormat.ISO.TIME)
private LocalTime closingTime;
```
这样,你就可以直接获取时间对象 closingTime,而不需要手动解析时间字符串了。
阅读全文