ChronoUnit.MILLIS.between(timeFrom, timeTo); 怎么换? 在Java21 没有这个方法,改换成什么?
时间: 2024-09-20 07:08:57 浏览: 40
什么是线程?Java中如何创建和管理线程?(java面试题附答案).txt
`ChronoUnit.MILLIS.between(timeFrom, timeTo)` 是 Java 8 中 `java.time.temporal.ChronoUnit` 类提供的方法,用于计算两个时间点之间的毫秒差。但在 Java 9 及以后版本,`ChronoUnit` 接口移除了 `MILLIS` 等枚举值,直接使用 `Duration.between()` 或 `Period.between()` 函数会更合适。
如果你在 Java 21 及以上,可以使用 `java.time.Duration.between()` 方法,例如:
```java
long millisDiff = Duration.between(timeFrom, timeTo).toMillis();
```
如果需要计算的是时间跨度而不是精确毫秒数,可以使用 `Period.between()` 来得到一个 `Period` 对象,然后获取其中的 `days`, `hours`, `minutes`, 和 `seconds` 分别:
```java
Period period = Period.between(timeFrom, timeTo);
int days = period.getDays();
int hours = period.getHours();
// ... 获取其他字段
```
请注意,在使用这两个函数之前,确保 `timeFrom` 和 `timeTo` 都是 `LocalDateTime` 或其子类的对象。如果你的时间是基于某个日历系统,记得转换到 `Instant` 或 `ZonedDateTime`。
阅读全文