public static String geWek() { String startdate = ""; String enddate = ""; String today = ""; //当前日期 if (StringUtil.isNull(today)) { today = DateUtil.getCurrentTime("yyyy-MM-dd"); } today += "%"; Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.setTime(date); // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 if (1 == dayWeek) { cal.add(Calendar.DAY_OF_MONTH, -1); } // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 cal.setFirstDayOfWeek(Calendar.MONDAY); // 获得当前日期是一个星期的第几天 int day = cal.get(Calendar.DAY_OF_WEEK); // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day); startdate = sdf.format(cal.getTime());//所在周星期一的日期 cal.add(Calendar.DATE, 6); enddate = sdf.format(cal.getTime());//所在周星期日的日期 startdate += " 00:00:00"; enddate += " 23:59:59"; return startdate + enddate; }