Java得到系统时间到第二天凌晨的时间差

/**
 * 得到系统时间到第二天凌晨的时间差
 * 返回毫秒数
 * @param date
 * @return
 */
public static long getSecondDayDifference(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    int day = cal.get(Calendar.DATE);
    cal.set(Calendar.DATE, day + 1);
    DateUtils.format(cal, "yyyy-MM-dd 00:00:00");
    long timeDiff = DateUtils.timeToBeginDay(cal.getTime()).getTime() - System.currentTimeMillis();
    return timeDiff;
}

/**
 * Calendar转换成string
 * @param calendar Calendar对象
 * @param pattern  转换格式
 * @return
 */
public static String format(Calendar calendar, String pattern) {
    if (StringUtils.isBlank(pattern)) {
        return "";
    }
    SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    return sdf.format(calendar.getTime());
}

/**
 * 将时间归至第二天零点
 *
 * @param date
 * @return
 */
public static Date timeToBeginDay(Date date) {
    if (date != null) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTime();
    }
    return null;
}
经验分享 程序员 微信小程序 职场和发展