java 获取当前天之后或之前(任意)日期、指定时间基础上增加天数

import org.apache.commons.lang3.time.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.junit.Test;

import java.util.Calendar;
import java.util.Date;

/**
 * @author 
 * @date 2019-11-28 13:30
 */
@Slf4j
public class MyStudy {

    @Test
    public  void test() {
        //今天 23:59:59
        String today = dateFormat(0);
        //明天 23:59:59
        String tomorrow = dateFormat(1);
        //昨天 23:59:59
        String acquired = dateFormat(2);
        //未来7天后
        String sevenDaysLater = dateFormat(7);
        //昨天 23:59:59
        String yesterday = dateFormat(-1);
        //前天 23:59:59
        String TheDayBeforeYesterday = dateFormat(-2);
        //7天前 23:59:59
        String sevenDaysAgo = dateFormat(-7);
        /*
         * 指定具体时间基础上增加天数
         */
        String customizeateFormat = "2019-11-28 13:46:00";
        Integer days = 1;//明天
        String customizeDateFormat = customizeDateFormat(customizeateFormat, days);
        log.info("today-----> {}", today);
        log.info("tomorrow-----> {}", tomorrow);
        log.info("acquired-----> {}", acquired);
        log.info("sevenDaysLater-----> {}", sevenDaysLater);
        log.info("yesterday-----> {}", yesterday);
        log.info("TheDayBeforeYesterday-----> {}", TheDayBeforeYesterday);
        log.info("sevenDaysAgo-----> {}", sevenDaysAgo);
        log.info("customizeDateFormat -----> {}", customizeDateFormat);
    }

    //获取给定天数后的时间
    public static String dateFormat(Integer days) {
        Date date = DateUtils.addDay(new Date(), days);
        Calendar calendar = Calendar.getInstance();
        calendar.set(DateUtils.getYear(date), DateUtils.getMonth(date), DateUtils.getDay(date), 23, 59, 59);
        calendar.set(DateUtils.getYear(date), DateUtils.getMonth(date), DateUtils.getDay(date), DateUtils.getHour(date), DateUtils.getMinute(date), DateUtils.getSecond(date));
        date = calendar.getTime();
        String dateFormat = DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss");
        return dateFormat;
    }

    //获取指定的时间基础上增加天数后时间
    public static String customizeDateFormat(String customizeateDate, Integer days) {
        Date toDate = DateUtils.StringToDate(customizeateDate);
        Date date = DateUtils.addDay(toDate, days);
        Calendar calendar = Calendar.getInstance();
        calendar.set(DateUtils.getYear(date), DateUtils.getMonth(date), DateUtils.getDay(date), DateUtils.getHour(date), DateUtils.getMinute(date), DateUtils.getSecond(date));
        date = calendar.getTime();
        String dateFormat = DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss");
        return dateFormat;
    }


}

运行结果:

INFO  2019-11-28 13:48:34,251 [main] MyStudy > today-----> 2019-12-28 13:48:33
INFO  2019-11-28 13:48:34,261 [main] MyStudy > tomorrow-----> 2019-12-29 13:48:34
INFO  2019-11-28 13:48:34,261 [main] MyStudy > acquired-----> 2019-12-30 13:48:34
INFO  2019-11-28 13:48:34,261 [main] MyStudy > sevenDaysLater-----> 2020-01-05 13:48:34
INFO  2019-11-28 13:48:34,262 [main] MyStudy > yesterday-----> 2019-12-27 13:48:34
INFO  2019-11-28 13:48:34,262 [main] MyStudy > TheDayBeforeYesterday-----> 2019-12-26 13:48:34
INFO  2019-11-28 13:48:34,262 [main] MyStudy > sevenDaysAgo-----> 2019-12-21 13:48:34
INFO  2019-11-28 13:48:34,262 [main] MyStudy > customizeDateFormat -----> 2019-12-29 13:46:00

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值