安卓 Java获取前一周的日期列表
在根据指定日期获取前一周的日期列表时,我遇到了一些问题。这是我的密码:
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd");
Date refDate = null;
try {
refDate = formatter.parse("Sun Aug 05");
} catch (ParseException e) {
e.printStackTrace();
}
Date[] days = reservationViewModel.getDaysOfWeek(refDate, Calendar.getInstance().getFirstDayOfWeek());
for (Date day : days) {
// display
}
以及获取日期列表的代码:
public static Date[] getDaysOfWeek(Date refDate, int firstDayOfWeek) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(refDate);
calendar.set(Calendar.DAY_OF_WEEK, firstDayOfWeek);
Date[] daysOfWeek = new Date[7];
for (int i = 0; i < 7; i++) {
daysOfWeek[i] = calendar.getTime();
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
return daysOfWeek;
}
然而,我得到的结果是:
Sun Aug 02
Mon Aug 03
Tue Aug 04
Wed Aug 05
Thu Aug 06
Fri Aug 07
Sat Aug 08
日期都错了。应该从7月29日到8月4日。有什么想法吗?谢谢
# 1 楼答案
使用
Calendar.WEEK_OF_YEAR
将时间从给定日期移到前一周。代码类似于calendar.set(Calendar.WEEK_OF_YEAR, calendar.get(Calendar.WEEK_OF_YEAR) - 1);
所以在你的情况下是这样的
获得前7天
它会像纸一样打印