| | |
| | | |
| | | |
| | | /** |
| | | * @Description: 将日期转换为当天的开始和结束时间 |
| | | * @Description: 获取指定小时的开始时间 |
| | | * @Param: [date] |
| | | * @return: java.util.Date |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/9/26 |
| | | */ |
| | | public static Date getHourlyStartTime(Date date) { |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | cal.set(Calendar.MINUTE, 0); |
| | | cal.set(Calendar.SECOND, 0); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 获取指定小时的结束时间 |
| | | * @Param: [date] |
| | | * @return: java.util.Date |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/9/26 |
| | | */ |
| | | public static Date getHourlyEndTime(Date date) { |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | cal.set(Calendar.MINUTE, 59); |
| | | cal.set(Calendar.SECOND, 59); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 获取指定日期的第一个小时 |
| | | * @Param: [date] |
| | | * @return: java.util.List<java.util.Date> |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/9/8 |
| | | */ |
| | | public static List<Date> dateToStartAndEndTime(Date date) { |
| | | public static Date getDailyStartTime(Date date) { |
| | | String dateStr = dateToDateString(date, "yyyy-MM-dd"); |
| | | String startDateStr = dateStr + " 00:00:00"; |
| | | String endDateStr = dateStr + " 23:59:59"; |
| | | Date startDate = getDate(startDateStr, "yyyy-MM-dd HH:mm:ss"); |
| | | return startDate; |
| | | } |
| | | |
| | | /** |
| | | * @Description: 获取指定日期的最后一个小时 |
| | | * @Param: [date] |
| | | * @return: java.util.Date |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/9/26 |
| | | */ |
| | | public static Date getDailyEndTime(Date date) { |
| | | String dateStr = dateToDateString(date, "yyyy-MM-dd"); |
| | | String endDateStr = dateStr + " 23:59:59"; |
| | | Date endDate = getDate(endDateStr, "yyyy-MM-dd HH:mm:ss"); |
| | | ArrayList<Date> dates = new ArrayList<>(); |
| | | dates.add(startDate); |
| | | dates.add(endDate); |
| | | return dates; |
| | | return endDate; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @Description: 获取指定日期那周的第一天第一个小时 |
| | | * @Param: [date] |
| | | * @return: java.util.Date |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/9/26 |
| | | */ |
| | | public static Date getWeeklyStartTime(Date date) { |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | if (1 == cal.get(Calendar.DAY_OF_WEEK)) { |
| | | cal.add(Calendar.DAY_OF_MONTH, -1); |
| | | } |
| | | cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); |
| | | cal.set(Calendar.HOUR_OF_DAY, 0); |
| | | cal.set(Calendar.MINUTE, 0); |
| | | cal.set(Calendar.SECOND, 0); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 获取指定日期那周的最后一天最后一个小时 |
| | | * @Param: [date] |
| | | * @return: java.util.Date |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/9/26 |
| | | */ |
| | | public static Date getWeeklyEndTime(Date date) { |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | if (1 != cal.get(Calendar.DAY_OF_WEEK)) { |
| | | cal.add(Calendar.DAY_OF_MONTH, 7); |
| | | } |
| | | cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); |
| | | cal.set(Calendar.HOUR_OF_DAY, 23); |
| | | cal.set(Calendar.MINUTE, 59); |
| | | cal.set(Calendar.SECOND, 59); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 获取指定日期当月的第一天第一个小时 |
| | | * @Param: [date] |
| | | * @return: java.util.Date |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/9/26 |
| | | */ |
| | | public static Date getMonthlyStartTime(Date date) { |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH)); |
| | | cal.set(Calendar.HOUR_OF_DAY, 0); |
| | | cal.set(Calendar.MINUTE, 0); |
| | | cal.set(Calendar.SECOND, 0); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 获取指定日期当月的最后一天最后一个小时 |
| | | * @Param: [date] |
| | | * @return: java.util.Date |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/9/26 |
| | | */ |
| | | public static Date getMonthlyEndTime(Date date) { |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); |
| | | cal.set(Calendar.HOUR_OF_DAY, 23); |
| | | cal.set(Calendar.MINUTE, 59); |
| | | cal.set(Calendar.SECOND, 59); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | |
| | |
| | | return dateToDateString(now.getTime(), formatStr); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取指定日期day天后的一个(formatStr)的字符串 |
| | | * |
| | |
| | | } |
| | | return new Date(); |
| | | } |
| | | |
| | | |
| | | |
| | | public static String getAfterNDays(Date date, int n, String formateStr) { |
| | | SimpleDateFormat sdf = new SimpleDateFormat(formateStr); |
| | |
| | | return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN)); |
| | | } |
| | | |
| | | /* |
| | | * 获取今年的第一天 |
| | | * */ |
| | | public static Date getFirstDayOfCurrYear() { |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.set(Calendar.DAY_OF_YEAR, 1); |
| | | return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN)); |
| | | } |
| | | |
| | | /* |
| | | * 获取日期年份的第一天 |
| | | * */ |
| | | public static Date getFirstDayOfYear(Date date) { |
| | | final Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | final int last = cal.getActualMinimum(Calendar.DAY_OF_YEAR); |
| | | cal.set(Calendar.DAY_OF_YEAR, last); |
| | | cal.set(Calendar.HOUR_OF_DAY, 0); |
| | | cal.set(Calendar.MINUTE, 0); |
| | | cal.set(Calendar.SECOND, 0); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | /* |
| | | * 获取日期年份的最后一天 |
| | | * */ |
| | | public static Date getLastDayOfYear(Date date) { |
| | | final Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | final int last = cal.getActualMaximum(Calendar.DAY_OF_YEAR); |
| | | cal.set(Calendar.DAY_OF_YEAR, last); |
| | | cal.set(Calendar.HOUR_OF_DAY, 23); |
| | | cal.set(Calendar.MINUTE, 59); |
| | | cal.set(Calendar.SECOND, 59); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | /* |
| | | * 获取指定日期月的第一天 |
| | | * */ |
| | | public static Date getFirstDayOfMonth(Date date) { |
| | | final Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH); |
| | | cal.set(Calendar.DAY_OF_MONTH, last); |
| | | cal.set(Calendar.HOUR_OF_DAY, 0); |
| | | cal.set(Calendar.MINUTE, 0); |
| | | cal.set(Calendar.SECOND, 0); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | /* |
| | | * 获取指定日期月的最后一天 |
| | | * */ |
| | | public static Date getLastDayOfMonth(Date date) { |
| | | final Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(date); |
| | | final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH); |
| | | cal.set(Calendar.DAY_OF_MONTH, last); |
| | | cal.set(Calendar.HOUR_OF_DAY, 23); |
| | | cal.set(Calendar.MINUTE, 59); |
| | | cal.set(Calendar.SECOND, 59); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | |
| | | /* |
| | | * 判断日期是否为今年 |
| | | * */ |
| | | public static boolean isCurrentYear(Date date) { |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(new Date()); |
| | | int currentYear = cal.get(Calendar.YEAR); |
| | | cal.setTime(date); |
| | | int year = cal.get(Calendar.YEAR); |
| | | return year == currentYear; |
| | | } |
| | | |
| | | /* |
| | | * 判断日期是否为本月 |
| | | * */ |
| | | public static boolean isCurrentMonth(Date date) { |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(new Date()); |
| | | int currentYear = cal.get(Calendar.MONTH); |
| | | cal.setTime(date); |
| | | int year = cal.get(Calendar.MONTH); |
| | | return year == currentYear; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取当前月的最后一天 |
| | | * |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取指定年月的第一天 |
| | | * |
| | | * @param year |
| | | * @param month |
| | | * @return |
| | | */ |
| | | public static String getFirstDayOfMonth(int year, int month) { |
| | | Calendar cal = Calendar.getInstance(); |
| | | // 设置年份 |
| | | cal.set(Calendar.YEAR, year); |
| | | // 设置月份 |
| | | cal.set(Calendar.MONTH, month - 1); |
| | | // 获取某月最小天数 |
| | | int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH); |
| | | // 设置日历中月份的最大天数 |
| | | cal.set(Calendar.DAY_OF_MONTH, lastDay); |
| | | // 格式化日期 |
| | | DateFormat df = getDateFormat(yyyy_MM_dd_EN); |
| | | return df.format(cal.getTime()); |
| | | } |
| | | |
| | | /** |
| | | * 获取指定年月的第一天 |
| | | * |
| | | * @param year |
| | | * @param month |
| | | * @return |
| | | */ |
| | | public static String getLastDayOfMonth(int year, int month) { |
| | | Calendar cal = Calendar.getInstance(); |
| | | // 设置年份 |
| | | cal.set(Calendar.YEAR, year); |
| | | // 设置月份 |
| | | cal.set(Calendar.MONTH, month - 1); |
| | | // 获取某月最大天数 |
| | | int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); |
| | | // 设置日历中月份的最大天数 |
| | | cal.set(Calendar.DAY_OF_MONTH, lastDay); |
| | | // 格式化日期 |
| | | DateFormat df = getDateFormat(yyyy_MM_dd_EN); |
| | | return df.format(cal.getTime()); |
| | | } |
| | | |
| | | /** |
| | | * 获取昨天日期 |
| | | * |
| | | * @param date |
| | |
| | | return df.format(calendar.getTime()); |
| | | } |
| | | |
| | | /* |
| | | * 获取昨天Date |
| | | * */ |
| | | public static Date getYesterdayDate() { |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(new Date()); |
| | | cal.set(Calendar.HOUR_OF_DAY, 0); |
| | | cal.set(Calendar.MINUTE, 0); |
| | | cal.set(Calendar.SECOND, 0); |
| | | cal.add(Calendar.DAY_OF_MONTH, -1); |
| | | return cal.getTime(); |
| | | } |
| | | |
| | | /** |
| | | * 10位时间戳转时间 |
| | |
| | | todayStart.set(Calendar.MILLISECOND, 0); |
| | | return todayStart.getTime().getTime(); |
| | | } |
| | | |
| | | |
| | | public static Integer getTodayInt() { |
| | | return (int) (getTodayTime() / 1000); |
| | |
| | | calendar.add(Calendar.MONTH, months); |
| | | return calendar.getTime(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | calendar.add(Calendar.HOUR_OF_DAY, hours); |
| | | return calendar.getTime(); |
| | | } |
| | | |
| | | //获取去年Date |
| | | public static Date getFirstDayOfLastYear() { |
| | | String lastYear = getDateAddYear(DateUtils.dateToDateString(getDate(), DateUtils.yyyy), -1); |
| | | return DateUtils.getDate(lastYear, DateUtils.yyyy); |
| | | } |
| | | |
| | | //获取一天中每个小时的前后一小时集合 |
| | | public static Map<Date, List<Integer>> getBeforeAndAfterHourDate(Date date) { |
| | | String s = dateToDateString(date, yyyy_MM_dd_EN); |
| | | List<String> timeLag = getTimeLag(s); |
| | | Map<Date, List<Integer>> result = new HashMap<>(); |
| | | for (String s1 : timeLag) { |
| | | List<Integer> objects = new ArrayList<>(); |
| | | Date current = getDate(s1, yyyy_MM_dd_HH_EN); |
| | | Date before = addHours(current, -1); |
| | | Date after = addHours(current, 1); |
| | | objects.add(getHour(before)); |
| | | objects.add(getHour(current)); |
| | | objects.add(getHour(after)); |
| | | result.put(current, objects); |
| | | } |
| | | return result; |
| | | } |
| | | } |