根据时间段【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 19:43:35 浏览: 94
可以使用 Java 中的 LocalDate 和 LocalDateTime 类来实现。首先需要将时间段转换为 LocalDateTime 对象,然后将时分秒部分设置为 0 和 23:59:59,分别得到起始时间和结束时间。接下来可以使用 LocalDate 的循环来获取每一天的起始时间和结束时间。
示例代码如下:
```java
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
public class DateTimeExample {
public static void main(String[] args) {
String startTimeStr = "2020-11-20 09:09:09";
String endTimeStr = "2021-10-09 10:10:10";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 将时间段转换为 LocalDateTime 对象
LocalDateTime startTime = LocalDateTime.parse(startTimeStr, formatter);
LocalDateTime endTime = LocalDateTime.parse(endTimeStr, formatter);
// 设置时分秒为 0 和 23:59:59
LocalDateTime startOfDay = startTime.with(LocalTime.MIN);
LocalDateTime endOfDay = endTime.with(LocalTime.MAX);
// 获取每一天的起始时间和结束时间
LocalDate currentDate = startOfDay.toLocalDate();
List<LocalDateTime[]> dayRanges = new ArrayList<>();
while (currentDate.isBefore(endOfDay.toLocalDate()) || currentDate.isEqual(endOfDay.toLocalDate())) {
LocalDateTime[] dayRange = new LocalDateTime[2];
dayRange[0] = LocalDateTime.of(currentDate, LocalTime.MIN);
dayRange[1] = LocalDateTime.of(currentDate, LocalTime.MAX);
dayRanges.add(dayRange);
currentDate = currentDate.plusDays(1);
}
// 输出每一天的起始时间和结束时间
for (LocalDateTime[] dayRange : dayRanges) {
System.out.println(dayRange[0].format(formatter) + " - " + dayRange[1].format(formatter));
}
}
}
```
输出结果如下:
```
2020-11-20 00:00:00 - 2020-11-20 23:59:59
2020-11-21 00:00:00 - 2020-11-21 23:59:59
...
2021-10-08 00:00:00 - 2021-10-08 23:59:59
2021-10-09 00:00:00 - 2021-10-09 23:59:59
```
阅读全文