| | |
| | | * 日期格式(yyyy-MM-dd HH) |
| | | * */ |
| | | public static final String yyyy_MM_dd_HH_EN = "yyyy-MM-dd HH"; |
| | | /* |
| | | * 日期格式(MM-dd) |
| | | * */ |
| | | public static final String MM_dd_EN = "MM-dd"; |
| | | |
| | | /* |
| | | * Date类toString格式 |
| | |
| | | return dateToDateString(now.getTime(), formatStr); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取指定日期day天后的一个(formatStr)的字符串 |
| | | * |
| | | * @param date |
| | | * @param date, |
| | | * @param hours |
| | | * @return |
| | | */ |
| | | public static Date getDateAddHour(Date date,int hours) { |
| | | Calendar now = Calendar.getInstance(TimeZone.getDefault()); |
| | | now.setTime(date); |
| | | now.add(Calendar.HOUR_OF_DAY, hours); |
| | | return now.getTime(); |
| | | } |
| | | |
| | | /** |
| | | * @Description: 获取指定日期day天后的日期 |
| | | * @Param: [date, day] |
| | |
| | | } |
| | | 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位时间戳转时间 |
| | |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | calendar.add(Calendar.MONTH, months); |
| | | return calendar.getTime(); |
| | | } |
| | | |
| | | //加减年份 |
| | | public static Date addYears(Date date, int years) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | calendar.add(Calendar.YEAR, years); |
| | | return calendar.getTime(); |
| | | } |
| | | |
| | |
| | | //获取去年Date |
| | | public static Date getFirstDayOfLastYear() { |
| | | String lastYear = getDateAddYear(DateUtils.dateToDateString(getDate(), DateUtils.yyyy), -1); |
| | | System.out.println(DateUtils.getDate(lastYear, DateUtils.yyyy)); |
| | | 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; |
| | | } |
| | | } |