java获取某一周七天日期
时间: 2025-06-29 13:24:06 浏览: 17
### 如何用Java获取某一周的所有七天日期
为了实现这一目标,可以利用 `Calendar` 类或更现代的 `LocalDate` 和 `TemporalAdjusters` API 来操作日期。下面展示两种方法。
#### 方法一:使用 Calendar 类
这种方法适用于较旧版本的 Java 或者对于熟悉传统API 的开发者来说更为直观:
```java
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class WeekDates {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
// 设置每周的第一天为星期一
cal.setFirstDayOfWeek(Calendar.MONDAY);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
// 调整到本周周一
cal.add(Calendar.DATE, -(dayOfWeek - 2));
for (int i = 0; i < 7; ++i){
try{
System.out.println(sdf.format(cal.getTime()));
} catch(Exception e){
e.printStackTrace();
}
cal.add(Calendar.DATE, 1);
}
}
}
```
这段代码设置了每周第一天为星期一[^4],并通过调整当前日期至最近的一个星期一开始遍历该周内的每一天并打印出来。
#### 方法二:采用 LocalDate 及 TemporalAdjuster 接口(推荐)
此方式更加简洁明了,并且符合新的日期时间处理标准:
```java
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class GetWeekDays {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
// 找到当期日期所在周的第一个工作日(即周一)
LocalDate startOfWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
for(int i=0;i<7;++i){
System.out.println(startOfWeek.plusDays(i).toString());
}
}
}
```
上述程序首先找到给定日期所在的那一周中的第一个工作日——也就是最接近但不大于当天的那个周一;接着循环增加一天直到覆盖整个星期共七个日子为止[^3]。
阅读全文
相关推荐


















