java 中怎么判断某个时间是否与数据库中某段时间存在交叉
时间: 2023-02-06 18:52:17 浏览: 164
在 Java 中,可以使用 `java.time` 包中的类来处理时间。
要判断某个时间是否与数据库中某段时间存在交叉,可以这样做:
1. 从数据库中读取开始时间和结束时间,并将它们转换为 `java.time.LocalDateTime` 对象。
2. 使用 `java.time.LocalDateTime` 类的 `isAfter` 和 `isBefore` 方法来判断给定的时间是否在这段时间之后或之前。
3. 使用 `java.time.Duration` 类的 `between` 方法来计算两个时间之间的时间差,并判断它是否大于 0。
例如:
```
import java.time.Duration;
import java.time.LocalDateTime;
// 从数据库中读取开始时间和结束时间
LocalDateTime startTime = ...;
LocalDateTime endTime = ...;
// 给定的时间
LocalDateTime givenTime = ...;
// 判断给定的时间是否在数据库中的时间段内
boolean isOverlapping = (!givenTime.isBefore(startTime) && !givenTime.isAfter(endTime)) ||
(Duration.between(givenTime, startTime).toMillis() > 0 &&
Duration.between(givenTime, endTime).toMillis() < 0);
```
上面的代码会判断给定的时间是否在数据库中的时间段内,或者与数据库中的时间段相交。
请注意,上面的代码假设给定的时间是在数据库中的时间段之后或之前,或者与数据库中的时间段相交。如果给定的时间是在数据库中的时间段内部,则不会
相关推荐
![text/x-java](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)