根据时间段【2020-11-20 09:09:09,2021-10-09 10:10:10】先转换为【2020-11-20 00:00:00,2021-10-09 59:59:59】 再根据转换时间把里面的每一天的开始时间和结束时间获取出来 java
时间: 2023-12-03 12:43:59 浏览: 254
可以通过Java中的日期时间类 `LocalDate` 和 `LocalDateTime` 来实现该功能。
首先,我们需要将时间段转换为 `LocalDateTime` 对象,然后将时间部分设置为 00:00:00 或 23:59:59,最后遍历每一天,获取每一天的开始时间和结束时间。
以下是代码示例:
```java
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class TimeUtils {
public static void main(String[] args) {
String startStr = "2020-11-20 09:09:09";
String endStr = "2021-10-09 10:10:10";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime start = LocalDateTime.parse(startStr, formatter);
LocalDateTime end = LocalDateTime.parse(endStr, formatter);
// 将时间部分设置为 00:00:00 或 23:59:59
LocalDateTime startOfDay = start.with(LocalTime.MIN);
LocalDateTime endOfDay = end.with(LocalTime.MAX);
// 遍历每一天,获取每一天的开始时间和结束时间
LocalDate startDate = startOfDay.toLocalDate();
LocalDate endDate = endOfDay.toLocalDate();
while (!startDate.isAfter(endDate)) {
LocalDateTime startOfDayOfDate = startDate.atStartOfDay();
LocalDateTime endOfDayOfDate = startDate.atTime(LocalTime.MAX);
System.out.println("Start time of " + startDate + ": " + startOfDayOfDate);
System.out.println("End time of " + startDate + ": " + endOfDayOfDate);
startDate = startDate.plusDays(1);
}
}
}
```
输出结果如下:
```
Start time of 2020-11-20: 2020-11-20T00:00
End time of 2020-11-20: 2020-11-20T23:59:59.999999999
Start time of 2020-11-21: 2020-11-21T00:00
End time of 2020-11-21: 2020-11-21T23:59:59.999999999
...
Start time of 2021-10-09: 2021-10-09T00:00
End time of 2021-10-09: 2021-10-09T23:59:59.999999999
```
阅读全文