public static void main(String[] args) { System.out.println("==获取本周的开始时间==" + getOneDayBeginTime(0, "start")); System.out.println("==获取本周的结束时间==" + getOneDayBeginTime(6, "end")); } /** * 获取某个日期的开始或结束时间 * @param amount * @param type (start,end) * @return */ public static Date getOneDayBeginTime(int amount, String type) { Calendar cal = Calendar.getInstance(); cal.setTime(getBeginDayOfWeek()); cal.add(Calendar.DAY_OF_WEEK, amount); Date weekEndSta = cal.getTime(); return getDayTime(weekEndSta,type); } /** * 获取本周的开始时间 * @return */ public static Date getBeginDayOfWeek() { Date date = new Date(); if (date == null) { return null; } Calendar cal = Calendar.getInstance(); cal.setTime(date); int dayofweek = cal.get(Calendar.DAY_OF_WEEK); if (dayofweek == 1) { dayofweek += 7; } cal.add(Calendar.DATE, 2 - dayofweek); return getDayTime(cal.getTime(),"start"); } /** * 获取某个日期的开始或结束时间 * @param d * @return */ public static Timestamp getDayTime(Date d,String type) { Calendar calendar = Calendar.getInstance(); if (null != d) { calendar.setTime(d); } if(type.equals("start")){ calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); calendar.set(Calendar.MILLISECOND, 0); }else if(type.equals("end")){ calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59); calendar.set(Calendar.MILLISECOND, 999); }else{ return null; } return new Timestamp(calendar.getTimeInMillis()); }
结果:
==获取本周的开始时间==2018-09-24 00:00:00
==获取本周的结束时间==2018-09-30 23:59:59