java如何获取本周
获取本周日期范围的方法
使用java.time包中的类可以方便地获取本周的开始和结束日期。以下是一个完整的示例代码:
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class WeekDates {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
LocalDate startOfWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
LocalDate endOfWeek = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
System.out.println("本周开始日期: " + startOfWeek);
System.out.println("本周结束日期: " + endOfWeek);
}
}
处理不同周定义的情况
某些地区可能将周日视为一周的第一天,这时可以调整代码:
LocalDate startOfWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY));
LocalDate endOfWeek = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.SATURDAY));
获取本周所有日期列表
如果需要获取本周的所有日期,可以使用以下方法:
List<LocalDate> datesInWeek = new ArrayList<>();
LocalDate current = startOfWeek;
while (!current.isAfter(endOfWeek)) {
datesInWeek.add(current);
current = current.plusDays(1);
}
使用Calendar类(旧版API)
如果项目仍在使用旧版Java日期API,可以使用Calendar类:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek());
Date startOfWeek = calendar.getTime();
calendar.add(Calendar.DATE, 6);
Date endOfWeek = calendar.getTime();
注意:新版java.timeAPI更推荐使用,它更清晰且线程安全。






