我强烈建议使用
Joda Time(对于所有的日期/时间工作,不只是这样):
// TODO: Consider time zones, calendars etc
LocalDate now = new LocalDate();
LocalDate monday = now.withDayOfWeek(DateTimeConstants.MONDAY);
System.out.println(monday);
请注意,当您在星期一使用星期一,这是Joda时间的第一天,这将永远返回早一天(或同一天)。如果您选择星期三(例如),那么它将从星期一或星期二到星期三。如果您需要“下周三”或“上周三”,您可以随时添加或减少一周。
编辑:如果你真的想使用java.util.Date/Calendar,可以使用:
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("Date " + c.getTime());
您可以使用Calendar.setFirstDayOfWeek来表明一周是周一至周日还是周一至周六;我相信设定一周中的日子将保持在本周之内 – 但要测试。