/** * 获取某月的最后一秒 */ public static Date getLastSecondOfMonth(Date date) { SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String time = format.format(date); Calendar cale = Calendar.getInstance(); //设置年份 cale.set(Calendar.YEAR, Integer.parseInt(time.substring(0, 4))); //设置月份 cale.set(Calendar.MONTH, Integer.parseInt(time.substring(4, 6))); //设置日历中月份的最大天数 cale.set(Calendar.DAY_OF_MONTH, 0); cale.set(Calendar.HOUR_OF_DAY, 23); cale.set(Calendar.MINUTE, 59); cale.set(Calendar.SECOND, 59); cale.set(Calendar.MILLISECOND, 0); return cale.getTime(); } /** * 获取某月的第一秒 */ public static Date getFirstSecondOfMonth(Date date) { SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String time = format.format(date); Calendar cale = Calendar.getInstance(); //设置年份 cale.set(Calendar.YEAR, Integer.parseInt(time.substring(0, 4))); //设置月份 cale.set(Calendar.MONTH, Integer.parseInt(time.substring(4, 6)) - 1); //设置日历中月份的最大天数 cale.set(Calendar.DAY_OF_MONTH, 1); cale.set(Calendar.HOUR_OF_DAY, 0); cale.set(Calendar.MINUTE, 0); cale.set(Calendar.SECOND, 0); cale.set(Calendar.MILLISECOND, 0); return cale.getTime(); }
/** * 获取某天的最后一秒 */ public static Date getLastDateDays(Date date) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd 23:59:59"); format.format(date); return stringToDate(format.format(date), DATE_TIME_PATTERN); } /** * 获取某天的第一秒 */ public static Date getStartDateDays(Date date) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); format.format(date); return stringToDate(format.format(date), DATE_TIME_PATTERN); }
/** * 根据周数,获取开始日期、结束日期 * * @param week 周期 0本周,-1上周,-2上上周,1下周,2下下周 * @return 返回date[0]开始日期、date[1]结束日期 */ public static Date[] getWeekStartAndEnd(int week) { DateTime dateTime = new DateTime(); LocalDate date = new LocalDate(dateTime.plusWeeks(week)); date = date.dayOfWeek().withMinimumValue(); Date beginDate = date.toDate(); Date endDate = date.plusDays(6).toDate(); return new Date[]{beginDate, endDate}; }
//获取上个月
public static Date getLastMonth(){ SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String time = format.format(new Date()); Calendar cal = Calendar.getInstance(); //设置年份 cal.set(Calendar.YEAR,Integer.parseInt(time.substring(0,4))); //设置月份 cal.set(Calendar.MONTH , Integer.parseInt(time.substring(4,6))-2); //获取某月最大天数 int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); //设置日历中月份的最大天数 cal.set(Calendar.DAY_OF_MONTH, lastDay); Date newDate = cal.getTime(); return newDate; } //获取昨天 public static Date getYesterday(){ Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.HOUR_OF_DAY, -24); Date newDate = calendar.getTime(); return newDate; }
/** * 获取某个时间段内所有整点
*/
public static List<String> getTimeByHour() { Integer[] hours = new Integer[25]; for (int i = 0; i < 25; i++) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.HOUR_OF_DAY, i); hours[i] = calendar.get(Calendar.HOUR_OF_DAY); } List<String> list = new ArrayList<>(); for (int i = 1; i < hours.length; i++) { list.add(hours[i].toString() + ":00"); } return list; } /** * 获取某个时间段内所有日期 * * @param begin * @param end * @return */ public static List<String> findDates(String begin, String end) { Date dBegin = parse(begin, DATE_PATTERN); Date dEnd = parse(end, DATE_PATTERN); List<String> lDate = new ArrayList<String>(); SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); lDate.add(sd.format(dBegin)); Calendar calBegin = Calendar.getInstance(); // 使用给定的 Date 设置此 Calendar 的时间 calBegin.setTime(dBegin); Calendar calEnd = Calendar.getInstance(); // 使用给定的 Date 设置此 Calendar 的时间 calEnd.setTime(dEnd); // 测试此日期是否在指定日期之后 while (dEnd.after(calBegin.getTime())) { // 根据日历的规则,为给定的日历字段添加或减去指定的时间量 calBegin.add(Calendar.DAY_OF_MONTH, 1); lDate.add(sd.format(calBegin.getTime())); } return lDate; }
/** * 获取某个时间段内所有月份 * * @param minDate * @param maxDate * @return * @throws ParseException */ public static List<String> getMonthBetween(String minDate, String maxDate) { ArrayList<String> result = new ArrayList<String>(); Calendar min = Calendar.getInstance(); Calendar max = Calendar.getInstance(); min.setTime(parse(minDate, "yyyy-MM")); min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1); max.setTime(parse(maxDate, "yyyy-MM")); max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2); Calendar curr = min; while (curr.before(max)) { result.add(format(curr.getTime(), "yyyy-MM")); curr.add(Calendar.MONTH, 1); } return result; }
/** * 获取昨天开始时间和结束时间 * * @return */ public static Map getYesterdayRange() { Map condition = new HashedMap(); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.HOUR_OF_DAY, 0); condition.put("endDate", DateUtils.format(calendar.getTime(), DateUtils.DATE_TIME_PATTERN)); calendar.set(Calendar.HOUR_OF_DAY, -24); condition.put("startDate", DateUtils.format(calendar.getTime(), DateUtils.DATE_TIME_PATTERN)); return condition; } /** * 获得近一周的开始时间和结束时间 * * @return */ public static Map getDaySevenRange() { Map condition = new HashedMap(); Calendar calendar = Calendar.getInstance(); calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); calendar.set(Calendar.HOUR_OF_DAY, 24); condition.put("endDate", DateUtils.format(calendar.getTime(), DateUtils.DATE_TIME_PATTERN)); calendar.set(Calendar.HOUR_OF_DAY, -168); condition.put("startDate", DateUtils.format(calendar.getTime(), DateUtils.DATE_TIME_PATTERN)); return condition; } /** * 获得近一月的开始时间和结束时间 * * @return */ public static Map getDayTRange() { Map condition = new HashedMap(); Calendar calendar = Calendar.getInstance(); calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); calendar.set(Calendar.HOUR_OF_DAY, 24); condition.put("endDate", DateUtils.format(calendar.getTime(), DateUtils.DATE_TIME_PATTERN)); calendar.set(Calendar.HOUR_OF_DAY, -720); condition.put("startDate", DateUtils.format(calendar.getTime(), DateUtils.DATE_TIME_PATTERN)); return condition; } /** * 获得近一年的开始时间和结束时间 * * @return */ public static Map getYearTRange() { Map condition = new HashedMap(); Calendar calendar = Calendar.getInstance(); calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); calendar.set(Calendar.HOUR_OF_DAY, 24); condition.put("endDate", DateUtils.format(calendar.getTime(), DateUtils.DATE_TIME_PATTERN)); calendar.set(Calendar.HOUR_OF_DAY, -8640); condition.put("startDate", DateUtils.format(calendar.getTime(), DateUtils.DATE_TIME_PATTERN)); return condition; }