您可以尝试以下方式,
Calendar cal = Calendar.getInstance();
//cal.setTime(new Date());//Set specific Date if you want to
for(int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) {
cal.set(Calendar.DAY_OF_WEEK, i);
System.out.println(cal.getTime());//Returns Date
}
输出
Sun Jul 12 08:12:38 IST 2015
Mon Jul 13 08:12:38 IST 2015
Tue Jul 14 08:12:38 IST 2015
Wed Jul 15 08:12:38 IST 2015
Thu Jul 16 08:12:38 IST 2015
Fri Jul 17 08:12:38 IST 2015
Sat Jul 18 08:12:38 IST 2015
Calendar calendar = Calendar.getInstance();
int offset = calendar.get(Calendar.DAY_OF_WEEK) - 1;
calendar.add(Calendar.DATE, -offset);
for(int i = 0; i < 7; i++){
System.out.println(calendar.getTime());
calendar.add(Calendar.DATE, 1);
}
基于this和this
public static List<LocalDate> datesOfWeekDate(LocalDate date) {
LocalDate monday = date
.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
return IntStream.range(0, 7).mapToObj(monday::plusDays).collect(toList());
}
public static List<LocalDateTime> GetListOfTheWeekForDate(Date date){
List<LocalDateTime> listOfWeek = new ArrayList<>();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
for(int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) {
cal.set(Calendar.DAY_OF_WEEK, i);
TimeZone tz = cal.getTimeZone();
ZoneId zoneId = tz.toZoneId();
LocalDateTime localDateTime = LocalDateTime.ofInstant(cal.toInstant(), zoneId);
listOfWeek.add(localDateTime);
}
return listOfWeek;
}
在2014年3月,Java 8推出了现代的日期API,该API取代了Error prone legacy
java.time
java.util
标准,其次是欧洲大部分地区,定义了一个星期从星期一开始。但是,在美国,a周从周日开始。
java.time
apisolution 您可以使用
java.time
找到一个星期的第一天(一个实例)。然后将其与locale
一起获取给定日期一周的第一个日期。
demo:
Locale
输出:
WeekFields.of(locale).getFirstDayOfWeek()
了解更多有关现代日期API的
trail:datetime.。