遍历map存入另一个map, 值为当前时间的后几天

1.时间的工具类

package com.mk.game.utils;

import org.apache.commons.lang.StringUtils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 时间工具类
 *
 * @date 2018年9月25日 下午2:52:39
 */
public class DateUtils {

    /**
     * 时间转换格式
     *
     * @param time
     * @return
     */
    public static String fromTimeToStr(long time) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(time);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(calendar.getTime());
    }


    /**
     * 获取今天的日期
     *
     * @return
     */
    public static String getCurrentDate() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String dateNowStr = sdf.format(new Date());
        return dateNowStr;
    }

    public static void main(String[] args) {
        System.out.println(isMonday());
    }

    /**
     * 获取昨天的日期
     *
     * @return
     */
    public static String getYesterday() {
        Date date = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DATE, -1);
        date = calendar.getTime();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String dateString = format.format(date);
        return dateString;
    }

    /**
     * 获取距离第二天凌晨0:00:01的毫秒数
     *
     * @return
     */
    public static long getMilliSecondNextEarlyMorning() {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DAY_OF_YEAR, 1);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.MILLISECOND, 1);
        return cal.getTimeInMillis() - System.currentTimeMillis();
    }

    /**
     * 是否是星期一
     *
     * @return
     */
    public static boolean isMonday() {
        return Calendar.getInstance().get(Calendar.DAY_OF_WEEK) == 2;
    }

    /**
     * yy-MM-DD 表示在某年某月某日 UTC
     *
     * @param timeStr
     * @return
     */
    public static long parseTime(String timeStr) {
        String[] timeArr = StringUtils.split(timeStr, "-");
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar calendar = Calendar.getInstance(zone);
        calendar.set(Calendar.YEAR, Integer.parseInt(timeArr[0]));
        calendar.set(Calendar.MONTH, Integer.parseInt(timeArr[1]) - 1);
        calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(timeArr[2]));
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTimeInMillis();
    }


    /**
     * D-HH-MM,表示在每周第D天HH时MM分
     *
     * @param timeStr
     * @return
     */
    public static long parseWeekTime(String timeStr) {
        String[] timeArr = StringUtils.split(timeStr, "-");
        Calendar calendar = Calendar.getInstance();
        int week = Integer.parseInt(timeArr[0]);
        int currWeek = calendar.get(Calendar.DAY_OF_WEEK);
        calendar.set(Calendar.DAY_OF_WEEK, week);
        if (currWeek > week) {
            calendar.add(Calendar.DAY_OF_WEEK_IN_MONTH, 1);
        }
        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeArr[1]));
        calendar.set(Calendar.MINUTE, Integer.parseInt(timeArr[2]));
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTimeInMillis();
    }

    /**
     * 获取某个时间戳的所在周的周几: 周1 ~ 周日:1 ~ 7
     *
     * @param millisTime
     * @param dayOfWeekNum
     * @return
     */
    public static long getWeekNumTime(Long millisTime, int dayOfWeekNum) {
        Calendar calendar = Calendar.getInstance();
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        calendar.setTimeInMillis(millisTime);
        calendar.set(Calendar.DAY_OF_WEEK, (dayOfWeekNum % 7) + 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTimeInMillis();
    }


    /**
     * 获取某个时间戳的下一个周几: 周1 ~ 周日:1 ~ 7
     *
     * @param millisTime
     * @param dayOfWeekNum
     * @return
     */
    public static long getNextWeekNumTime(Long millisTime, int dayOfWeekNum) {
        dayOfWeekNum = (dayOfWeekNum % 7) + 1;
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(millisTime);
        int currWeek = calendar.get(Calendar.DAY_OF_WEEK);
        calendar.set(Calendar.DAY_OF_WEEK, dayOfWeekNum);
        if (currWeek >= dayOfWeekNum) {
            calendar.add(Calendar.WEEK_OF_MONTH, 1);
        }
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTimeInMillis();
    }

    /**
     * 获取某个时间戳的上一个周几: 周1 ~ 周日:1 ~ 7
     *
     * @param millisTime
     * @param dayOfWeekNum
     * @return
     */
    public static long getLastWeekNumTime(Long millisTime, int dayOfWeekNum) {
        dayOfWeekNum = (dayOfWeekNum % 7) + 1;
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(millisTime);
        int currWeek = calendar.get(Calendar.DAY_OF_WEEK);
        calendar.set(Calendar.DAY_OF_WEEK, dayOfWeekNum);
        if (currWeek <= dayOfWeekNum) {
            calendar.add(Calendar.WEEK_OF_MONTH, -1);
        }
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTimeInMillis();
    }

    public static long parseFullTimeStr(String fullTimeStr, String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        try {
            Date date = sdf.parse(fullTimeStr);
            return date.getTime();
        } catch (ParseException e) {
            LoggerUtil.getInstance().recordException(e);
            e.printStackTrace();
            return 0;
        }
    }

    public static long parseFullTimeStr(String fullTimeStr) {
        return parseFullTimeStr(fullTimeStr, "yyyy-MM-dd HH:mm:ss");
    }

    /**
     * 获取下一天的零点
     */
    public static long getNewDay() {
        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.set(Calendar.MILLISECOND, 0);
        cal.add(Calendar.DAY_OF_MONTH, 1);
        return cal.getTimeInMillis();
    }

    /**
     * 获取当天零点
     */
    public static long getToday() {
        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.set(Calendar.MILLISECOND, 0);
        return cal.getTimeInMillis();
    }

    /**
     * 获取某天零点
     *
     * @param date
     * @return
     */
    public static long getZeroClock(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        return cal.getTimeInMillis();
    }

    /**
     * 获取某个时间戳的零点
     *
     * @param dateInMillis
     * @return
     */
    public static long getZeroClock(long dateInMillis) {
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(dateInMillis);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        return cal.getTimeInMillis();
    }

    /**
     * 获取某个时间戳的UTC零点
     *
     * @param dateInMillis
     * @return
     */
    public static long getUTCZeroClock(long dateInMillis) {
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar cal = Calendar.getInstance(zone);
        cal.setTimeInMillis(dateInMillis);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        return cal.getTimeInMillis();
    }


    /**
     * 周一 ~ 周日 : 1 ~ 7
     */
    public static int getDayOfWeek() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        int day = cal.get(Calendar.DAY_OF_WEEK);
        if (day == 1) {
            day = 7;
        } else {
            day -= 1;
        }
        return day;
    }

    /**
     * 周日 ~ 周六 : 1 ~ 7
     */
    public static int getDayOfWeek(long time) {
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(time);
        return cal.get(Calendar.DAY_OF_WEEK);
    }


    /**
     * 计算两个时间戳间隔几天
     */
    public static int getDayInterval(long time1, long time2) {
        long zeroTime1 = getZeroClock(time1);
        long zeroTime2 = getZeroClock(time2);
        long interval = Math.abs(zeroTime2 - zeroTime1);
        int dayInterval = (int) (interval / 86400000);
        return dayInterval;
    }

    /**
     * 计算UTC两个时间戳间隔几天
     */
    public static int getUTCDayInterval(long time1, long time2) {
        long zeroTime1 = getUTCZeroClock(time1);
        long zeroTime2 = getUTCZeroClock(time2);
        long interval = Math.abs(zeroTime2 - zeroTime1);
        return (int) (interval / 86400000);
    }

    /**
     * 计算两个时间戳间隔个小时
     */
    public static int getHourInterval(long time1, long time2) {
        int hour = 0;
        long time = time1;
        while (time2 > time) {
            time += 60 * 60 * 1000;
            hour++;
        }
        return hour - 1;
    }

    /**
     * 根据指定条件获取时间戳
     *
     * @param timeStamp 计算的时间戳:0-取当前时间戳
     * @param hour      计算的小时:大于0-后多少小时 小于0-前多少小时
     */
    public static long getTimeStampByHour(long timeStamp, int hour) {
        Calendar calendar = Calendar.getInstance();
        if (timeStamp != 0) {
            calendar.setTimeInMillis(timeStamp);
        }
        calendar.add(Calendar.HOUR_OF_DAY, hour);
        return calendar.getTimeInMillis();
    }

    /**
     * 判断两个时间戳是否是同一天
     */
    public static boolean isSameDay(long time1, long time2) {
        long zeroTime1 = getZeroClock(time1);
        long zeroTime2 = getZeroClock(time2);
        return zeroTime1 == zeroTime2;
    }

    /**
     * 判断两个时间戳是否是UTC同一天
     */
    public static boolean isUTCSameDay(long time1, long time2) {
        long zeroTime1 = getUTCZeroClock(time1);
        long zeroTime2 = getUTCZeroClock(time2);
        return zeroTime1 == zeroTime2;
    }

    /**
     * 取得当前日期所在周的第一天
     *
     * @param date
     * @return
     */
    public static Date getFirstDayOfWeek(Date date) {
        if (date == null) {
            date = new Date();
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setFirstDayOfWeek(Calendar.SUNDAY);
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_WEEK,
                calendar.getFirstDayOfWeek()); // Sunday
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        return calendar.getTime();
    }

    /**
     * 取得当前日期所在周的最后一天
     *
     * @param date
     * @return
     */
    public static Date getLastDayOfWeek(Date date) {
        if (date == null) {
            date = new Date();
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setFirstDayOfWeek(Calendar.SUNDAY);
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_WEEK,
                calendar.getFirstDayOfWeek() + 6); // Saturday
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        return calendar.getTime();
    }

    /***
     * 获取指定时间对应的毫秒数
     * @param time "HH:mm:ss" 
     * @return
     */
    public static long getTimeMillis(String time) {
        try {
            DateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
            DateFormat dayFormat = new SimpleDateFormat("yy-MM-dd");
            Date curDate = dateFormat.parse(dayFormat.format(new Date()) + " " + time);
            return curDate.getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return 0;
    }

    public static int getHourOfDay(long timeStamp) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeStamp);
        return calendar.get(Calendar.HOUR_OF_DAY);
    }


    public static int getMonthOfDay(long timeStamp) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeStamp);
        return calendar.get(Calendar.MONTH);
    }

    public static int getYearOfDay(long timeStamp) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeStamp);
        return calendar.get(Calendar.YEAR);
    }

    public static int getDayOfYear(long timeStamp) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeStamp);
        return calendar.get(Calendar.DAY_OF_YEAR);
    }

    public static long getHourOfDayStartTime(long timeStamp) {
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(timeStamp);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        return cal.getTimeInMillis();
    }

    /**
     * 判断当天是否为本月第一天
     *
     * @return
     */
    public static boolean isFirstDayOfMonth() {
        boolean flag = false;
        Calendar calendar = Calendar.getInstance();
        int today = calendar.get(Calendar.DAY_OF_MONTH);
        if (1 == today) {
            flag = true;
        }
        return flag;
    }

    /**
     * 描述:获取下一个月的第一天.
     *
     * @return
     */
    public static String getNextFirstDayOfMonth() {
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMM");
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH, 1);
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
        return dft.format(calendar.getTime());
    }

    /**
     * 描述:获取本月的第一天.
     *
     * @return
     */
    public static String getFirstDayOfMonth() {
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMM");
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
        return dft.format(calendar.getTime());
    }


    //获取剩余时间(秒)
    public static int getRemainSecond(long time) {
        if (time > System.currentTimeMillis()) {
            return (int) ((time - System.currentTimeMillis()) / 1000);
        }
        return 0;
    }

    //获取剩余时间(毫秒)
    public static long getRemainMillisecond(long time) {
        if (time > System.currentTimeMillis()) {
            return time - System.currentTimeMillis();
        }
        return 0;
    }

    //获取完成时时间戳
    public static long getFinishTimestamp(long needTime) {
        return System.currentTimeMillis() + needTime * 1000;
    }

    /**
     * 计算是否是相邻的两天
     *
     * @param smdate 较小的时间
     * @param bdate  较大的时间
     * @return
     * @throws ParseException
     */
    public static boolean isYesterday(Date smdate, Date bdate) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            smdate = sdf.parse(sdf.format(smdate));
            bdate = sdf.parse(sdf.format(bdate));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Calendar cal = Calendar.getInstance();
        cal.setTime(smdate);
        long time1 = cal.getTimeInMillis();
        cal.setTime(bdate);
        long time2 = cal.getTimeInMillis();
        long between_days = (time2 - time1) / (1000 * 3600 * 24);
        return Integer.parseInt(String.valueOf(between_days)) == 1;
    }

    /**
     * 获取本周第1天到今天的日期
     *
     * @return
     */
    public static List<String> getWeekDay() {
        Calendar cal = Calendar.getInstance();
        ArrayList<String> list = new ArrayList<>();
        int date = cal.get(Calendar.DAY_OF_MONTH);
        int n = cal.get(Calendar.DAY_OF_WEEK);
        if (n == 1) {
            n = 7;
        } else {
            n = n - 1;
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        for (int i = 1; i <= n; i++) {
            cal.set(Calendar.DAY_OF_MONTH, date + i - n);
            list.add(i - 1, sdf.format(cal.getTime()));
        }
        return list;
    }


    /**
     * 获取上周的所有日期
     *
     * @return
     */
    public static List<String> getLastWeekDay() {
        ArrayList<String> list = new ArrayList<>();
        // 日期格式转换
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        // 当前日期
        Calendar instance = Calendar.getInstance();
        // 调整到上周
        instance.add(Calendar.WEDNESDAY, -1);
        // 调整到上周1
        instance.set(Calendar.DAY_OF_WEEK, 2);
        //循环打印
        for (int i = 1; i <= 7; i++) {
            list.add(format.format(instance.getTime()));
            instance.add(Calendar.DAY_OF_WEEK, 1);
        }
        return list;
    }

    //获取当前时间戳的下一天的时间戳
    public static long getNextDayTimeStamp() {
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, 1);
        return calendar.getTimeInMillis();
    }

    //获取指定时间戳的下一天的时间戳
    public static long getNextDayTimeStamp(long timeStamp) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeStamp);
        calendar.add(Calendar.DATE, 1);
        return calendar.getTimeInMillis();
    }

    //获取指定时间戳的下一小时的时间戳
    public static long getNextHourTimeStamp(long timeStamp) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeStamp);
        calendar.add(Calendar.HOUR_OF_DAY, 1);
        return calendar.getTimeInMillis();
    }

    //获取指定时间戳的后多少分钟的时间戳
    public static long getTimeStampAfterMinute(long timeStamp, int minute) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeStamp);
        calendar.add(Calendar.MINUTE, minute);
        return calendar.getTimeInMillis();
    }

    //获取当前时间戳的上一天的时间戳
    public static long getLastDayTimeStamp() {
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);
        return calendar.getTimeInMillis();
    }

    //获取指定时间戳的上一天的时间戳
    public static long getLastDayTimeStamp(long timeStamp) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeStamp);
        calendar.add(Calendar.DATE, -1);
        return calendar.getTimeInMillis();
    }

    /**
     * 根据指定条件获取时间戳
     *
     * @param timeStamp 计算的时间戳:0-取当前时间戳
     * @param day       计算的天数:大于0-后多少天 小于0-前多少天
     */
    public static long getTimeStampByDay(long timeStamp, int day) {
        Calendar calendar = Calendar.getInstance();
        if (timeStamp != 0) {
            calendar.setTimeInMillis(timeStamp);
        }
        calendar.add(Calendar.DATE, day);
        return calendar.getTimeInMillis();
    }

    /**
     * 获取昨天天某个时间戳
     *
     * @param hour        时
     * @param minute      分钟
     * @param second      秒
     * @param milliSecond 毫秒
     * @return
     */
    public static long getLastDayOneTimeStamp(int hour, int minute, int second, int milliSecond) {
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);
        calendar.set(Calendar.HOUR_OF_DAY, hour);
        calendar.set(Calendar.MINUTE, minute);
        calendar.set(Calendar.SECOND, second);
        calendar.set(Calendar.MILLISECOND, milliSecond);
        return calendar.getTimeInMillis();
    }

    /**
     * 获取今天某个时间戳
     *
     * @param hour        时
     * @param minute      分钟
     * @param second      秒
     * @param milliSecond 毫秒
     * @return
     */
    public static long getTodayOneTimeStamp(int hour, int minute, int second, int milliSecond) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, hour);
        calendar.set(Calendar.MINUTE, minute);
        calendar.set(Calendar.SECOND, second);
        calendar.set(Calendar.MILLISECOND, milliSecond);
        return calendar.getTimeInMillis();
    }

    /**
     * 获取明天某个时间戳
     *
     * @param hour        时
     * @param minute      分钟
     * @param second      秒
     * @param milliSecond 毫秒
     * @return
     */
    public static long getNextDayOneTimeStamp(int hour, int minute, int second, int milliSecond) {
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, 1);
        calendar.set(Calendar.HOUR_OF_DAY, hour);
        calendar.set(Calendar.MINUTE, minute);
        calendar.set(Calendar.SECOND, second);
        calendar.set(Calendar.MILLISECOND, milliSecond);
        return calendar.getTimeInMillis();
    }


    /**
     * 获取UTC当天24点时间戳
     *
     * @return
     */
    public static long getUTCTodayEndTime() {
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar cal = Calendar.getInstance(zone);
        cal.set(Calendar.HOUR_OF_DAY, 23);
        cal.set(Calendar.MINUTE, 59);
        cal.set(Calendar.SECOND, 59);
        cal.set(Calendar.MILLISECOND, 999);
        return cal.getTimeInMillis();
    }

    /**
     * 获取UTC当天0点时间戳
     *
     * @return
     */
    public static long getUTCTodayStartTime() {
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar cal = Calendar.getInstance(zone);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 100);
        return cal.getTimeInMillis();
    }


    /**
     * 获取UTC当天直接时间点时间戳
     * hourOfDay 24小时制
     * 23 59 59 UTC24点
     * 0  0  0  UTC0点
     *
     * @return
     */
    public static long getUTCTodayTime(int hourOfDay, int min, int sec) {
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar cal = Calendar.getInstance(zone);

        cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
        cal.set(Calendar.MINUTE, min);
        cal.set(Calendar.SECOND, sec);
        cal.set(Calendar.MILLISECOND, 100);
        return cal.getTimeInMillis();
    }

    /**
     * 获取UTC时间
     */
    public static long getUTCTime() {
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar calendar = Calendar.getInstance(zone);
        return calendar.getTimeInMillis();
    }


    /**
     * 获取UTC当前时间
     */
    public static Date getUTCDate() {
        StringBuffer UTCTimeBuffer = new StringBuffer();
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar cal = Calendar.getInstance(zone);
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1;
        int day = cal.get(Calendar.DAY_OF_MONTH);
        int hour = cal.get(Calendar.HOUR_OF_DAY);
        int minute = cal.get(Calendar.MINUTE);
        int sec = cal.get(Calendar.SECOND);
        UTCTimeBuffer.append(year).append("-").append(month).append("-").append(day);
        UTCTimeBuffer.append(" ").append(hour).append(":").append(minute).append(":").append(sec);
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            return sdf.parse(UTCTimeBuffer.toString());
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return cal.getTime();
    }


    /**
     * 获取UTC明天直接时间点时间戳
     *
     * @param hour   时
     * @param minute 分钟
     * @param second 秒
     * @return
     */
    public static long getUTCTomorrowTime(int hour, int minute, int second) {
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar calendar = Calendar.getInstance(zone);

        calendar.add(Calendar.DATE, 1);
        calendar.set(Calendar.HOUR_OF_DAY, hour);
        calendar.set(Calendar.MINUTE, minute);
        calendar.set(Calendar.SECOND, second);
        return calendar.getTimeInMillis();
    }


    /**
     * 获取指定时间戳对应周内某一时刻的时间戳
     * 周一为第一天
     *
     * @param day  第几天
     * @param hour 第几小时
     * @return
     */
    public static long getThisWeekDayNumTime(long nowTime, int day, int hour) {
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar cal = Calendar.getInstance(zone);
        cal.setTimeInMillis(nowTime);
        cal.set(Calendar.DAY_OF_WEEK, (day % 7) + 1);
        cal.set(Calendar.HOUR_OF_DAY, hour);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        if (cal.get(Calendar.DAY_OF_WEEK) == 1) {
            cal.add(Calendar.DATE, 7);
        }
        return cal.getTime().getTime();
    }


    /**
     * 获取下周周某一时刻的时间戳
     * 周一为第一天
     *
     * @param day  第几天
     * @param hour 第几小时
     * @return
     */
    public static long getLastWeekDayNumTime(int day, int hour) {
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar cal = Calendar.getInstance(zone);
        cal.add(Calendar.WEDNESDAY, +1);
        cal.set(Calendar.DAY_OF_WEEK, (day % 7) + 1);
        cal.set(Calendar.HOUR_OF_DAY, hour);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        if (cal.get(Calendar.DAY_OF_WEEK) == 1) {
            cal.add(Calendar.DATE, 7);
        }
        return cal.getTime().getTime();
    }


    public static long getLastWeekDayNumTime(long nowTime, int day, int hour) {
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar cal = Calendar.getInstance(zone);
        cal.setTimeInMillis(nowTime);
        cal.add(Calendar.WEDNESDAY, +1);
        cal.set(Calendar.DAY_OF_WEEK, (day % 7) + 1);
        cal.set(Calendar.HOUR_OF_DAY, hour);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        if (cal.get(Calendar.DAY_OF_WEEK) == 1) {
            cal.add(Calendar.DATE, 7);
        }
        return cal.getTime().getTime();
    }


    /**
     * 时间转换格式yyyyMMddHHmmss
     *
     * @return
     */
    public static String fromDateToStr(Date date) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        return sdf.format(date);
    }

    /**
     * 获取下一个5分钟的秒数
     *
     * @return
     */
    public static int getNextMinute5Sec() {
        Calendar cal = Calendar.getInstance();
        int delay = Math.abs((5 - cal.get(Calendar.MINUTE) % 5)) * 60 - cal.get(Calendar.SECOND);
        return delay;
    }

    /**
     * 当前所处的5分钟Shi几案
     *
     * @return
     */
    public static Date getMinute5Date() {
        Calendar cal = Calendar.getInstance();
        int delay = (cal.get(Calendar.MINUTE) / 5) * 5;
        cal.set(Calendar.MINUTE, delay);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        return cal.getTime();
    }

    public static Date getUTCDate(long time) {
        StringBuffer UTCTimeBuffer = new StringBuffer();
        TimeZone zone = TimeZone.getTimeZone("UTC");
        Calendar cal = Calendar.getInstance(zone);
        cal.setTimeInMillis(time);
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1;
        int day = cal.get(Calendar.DAY_OF_MONTH);
        int hour = cal.get(Calendar.HOUR_OF_DAY);
        int minute = cal.get(Calendar.MINUTE);
        int sec = cal.get(Calendar.SECOND);
        UTCTimeBuffer.append(year).append("-").append(month).append("-").append(day);
        UTCTimeBuffer.append(" ").append(hour).append(":").append(minute).append(":").append(sec);
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            return sdf.parse(UTCTimeBuffer.toString());
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return cal.getTime();
    }

    public static int getHour() {
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.HOUR_OF_DAY);
    }

    /**
     * 获取天数对应的毫秒数
     *
     * @param day 计算天
     * @return 天对应毫秒数
     */
    public static long getDayToMillis(int day) {
        return (long) day * 24 * 60 * 60 * 1000;
    }
}

2.map取值存入另一个map

Map<Integer, HeroSend> heroSendMap = GameConfigMapCache.getInstance().getConfigInfoByFileName("HeroSend");
                Map<Integer, Long> rwardGuideHero = new HashMap<>();
                for (Integer heroSendId : heroSendMap.keySet()) {
                    rwardGuideHero.put(heroSendId, DateUtils.getTimeStampByHour(System.currentTimeMillis(), heroSendMap.get(heroSendId).get_reward_time / 3600));
                }
发布了237 篇原创文章 · 获赞 235 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/LRXmrlirixing/article/details/102969188