获得指定日期添加指定天数后的0点(昨天0点,前天0点,明天0点,后天0点,十天后零点)

    /**
     * 获得指定日期添加指定天数后的0点
     *
     * @param date     指定日期
     * @param plusDays 添加指定天数
     * @return 指定日期添加指定天数后的0点
     * @author hank
     */
    public static Date getPlusDayInitial(Date date, long plusDays) {
        LocalDateTime nextDayZeroLocalDate = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).plusDays(plusDays).withHour(0).withMinute(0).withSecond(0).withNano(0);
        return Date.from(ZonedDateTime.of(nextDayZeroLocalDate, ZoneId.systemDefault()).toInstant());
    }

比如获取昨天0点:

        // 昨天0点
        Date yesterdayZero = DateUtils.getPlusDayInitial(new Date(), -1);
        // 今天0点
        Date yesterdayZero = DateUtils.getPlusDayInitial(new Date(), 0);
        // 明天0点
        Date yesterdayZero = DateUtils.getPlusDayInitial(new Date(), 1);
        // 后天0点
        Date yesterdayZero = DateUtils.getPlusDayInitial(new Date(), 2);
        // 十天后0点
        Date yesterdayZero = DateUtils.getPlusDayInitial(new Date(), 10);

Date 和 LocalDateTime都是本地时间(指的是本地默认时区),具体的时间api比较可以参考:https://blog.csdn.net/huang007guo/article/details/104019643

你可能感兴趣的:(java,spring,boot,spring,java,spring,spring,boot)