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
    评论
### 回答1: 在Java中,可以使用Calendar类获取指定天数之前日期。下面是一个示例代码: ```java import java.util.Calendar; public class Main { public static void main(String[] args) { int days = 7; // 指定天数 Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -days); System.out.println(calendar.getTime()); } } ``` 这段代码会输出当前日期的7前的日期。 需要注意的是,上面的代码使用了Calendar类的add()方法来减少天数。如果要增加天数,可以将参数days改为正数。 另外,也可以使用Java 8中新引入的LocalDate类来获取指定天数之前日期。示例代码如下: ```java import java.time.LocalDate; public class Main { public static void main(String[] args) { int days = 7; // 指定天数 LocalDate date = LocalDate.now().minusDays(days); System.out.println(date); } } ``` ### 回答2: 以下是使用Java获取指定天数之前日期的代码: ```java import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtils { public static void main(String[] args) { int daysBefore = 7; // 指定天数之前 // 获取当前日期 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); // 计算指定天数之前日期 calendar.add(Calendar.DAY_OF_MONTH, -daysBefore); Date targetDate = calendar.getTime(); // 格式化日期 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String formattedDate = dateFormat.format(targetDate); System.out.println("指定天数(" + daysBefore + ")之前日期是:" + formattedDate); } } ``` 运行以上代码,将会输出类似以下内容(根据当前日期而定): ``` 指定天数(7)之前日期是:2022-01-01 ``` 请注意在代码中的`daysBefore`变量可以修改为你需要的天数。 ### 回答3: Java获取指定天数之前日期可以使用`java.util.Calendar`类和`java.text.SimpleDateFormat`类来实现。下面是示例代码: ```java import java.util.Calendar; import java.text.SimpleDateFormat; public class Example { public static void main(String[] args) { // 获取当前日期 Calendar calendar = Calendar.getInstance(); // 指定天数之前日期 int daysBefore = 7; // 指定7前的日期 calendar.add(Calendar.DAY_OF_YEAR, -daysBefore); // 格式化日期输出 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String formattedDate = sdf.format(calendar.getTime()); System.out.println("指定天数之前日期是: " + formattedDate); } } ``` 以上代码首先使用`Calendar.getInstance()`方法获取当前日期,然后使用`add()`方法向当前日期添加指定天数之前日期。最后使用`SimpleDateFormat`类进行日期的格式化输出。 注意,上述代码中的`daysBefore`变量可以根据需要进行更改来获取不同天数之前日期

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值