public static SimpleDateFormat getFormat(String format) { return new SimpleDateFormat(format); } /** * 獲取上周周幾的日期,默認一周從周一開始 * * @param dayOfWeek * @param weekOffset * @return */ public static Date getDayOfWeek(int dayOfWeek, int weekOffset) { return getDayOfWeek(Calendar.MONDAY, dayOfWeek, weekOffset); } /** * 獲取上(下)周周幾的日期 * * @param firstDayOfWeek {@link Calendar} 值范圍 <code>SUNDAY</code>, * <code>MONDAY</code>, <code>TUESDAY</code>, * <code>WEDNESDAY</code>, <code>THURSDAY</code>, * <code>FRIDAY</code>, and <code>SATURDAY</code> * @param dayOfWeek {@link Calendar} * @param weekOffset 周偏移,上周為-1,本周為0,下周為1,以此類推 * @return */ public static Date getDayOfWeek(int firstDayOfWeek, int dayOfWeek, int weekOffset) { if (dayOfWeek > Calendar.SATURDAY || dayOfWeek < Calendar.SUNDAY) { return null; } if (firstDayOfWeek > Calendar.SATURDAY || firstDayOfWeek < Calendar.SUNDAY) { return null; } Calendar date = Calendar.getInstance(Locale.CHINA); date.setFirstDayOfWeek(firstDayOfWeek); // 周數減一,即上周 date.add(Calendar.WEEK_OF_MONTH, weekOffset); // 日子設為周幾 date.set(Calendar.DAY_OF_WEEK, dayOfWeek); // 時分秒全部置0 date.set(Calendar.HOUR_OF_DAY, 0); date.set(Calendar.MINUTE, 0); date.set(Calendar.SECOND, 0); date.set(Calendar.MILLISECOND, 0); return date.getTime(); } public static void main(String[] args) { System.out.println( getFormat(DateTimeUtil.YEAR_MONTH_DATE_2).format(getDayOfWeek(Calendar.MONDAY, -1))); System.out.println( getFormat(DateTimeUtil.YEAR_MONTH_DATE_2).format(getDayOfWeek(Calendar.SUNDAY, -1))); }