获取根据当前时间 获取本周内的每一天的开始时间与结束时间的时间段 最后的时间为59:59:59 输出的时间格式为2020-09-09 00:10:10 类型为Date java
时间: 2023-11-28 16:51:09 浏览: 72
可以使用Java8的时间API来实现,具体代码如下:
```java
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.TemporalAdjusters;
public class Main {
public static void main(String[] args) {
LocalDate now = LocalDate.now(); // 获取当前日期
LocalDate startOfWeek = now.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); // 获取本周周一的日期
LocalDate endOfWeek = now.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY)); // 获取本周周日的日期
LocalDateTime startTime, endTime;
for (LocalDate date = startOfWeek; !date.isAfter(endOfWeek); date = date.plusDays(1)) {
startTime = LocalDateTime.of(date, LocalTime.MIN); // 该天的开始时间
endTime = LocalDateTime.of(date, LocalTime.MAX).withSecond(59); // 该天的结束时间
System.out.println(startTime + " - " + endTime);
}
}
}
```
输出的格式为`2020-09-07T00:00 - 2020-09-07T23:59:59.999999999`,如果需要将其转换为`Date`类型,可以使用以下代码进行转换:
```java
Date startDate = Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant());
Date endDate = Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant());
```
其中,`ZoneId.systemDefault()`表示使用系统默认时区。
阅读全文