1 Maven依赖

        <!--hutool工具包-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.5.1</version>
        </dependency>
 
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>

2 Hutool实现日期时间偏移

日期或时间的偏移指针对某个日期增加或减少分、小时、天等等,达到日期变更的目的。Hutool也针对其做了大量封装。

String dateStr = "2021-05-25 22:33:23";
Date date = DateUtil.parse(dateStr);
//减3毫秒
DateUtil.offsetMillisecond(date, -3);
DateUtil.offset(date, DateField.MILLISECOND, -3);
//减3秒
DateUtil.offsetSecond(date, -3);
DateUtil.offset(date, DateField.SECOND, -3);
//减3分钟
DateUtil.offsetMinute(date, -3);
DateUtil.offset(date, DateField.MINUTE, -3);
//减3小时
DateUtil.offsetHour(date, -3);
DateUtil.offset(date, DateField.HOUR_OF_DAY, -3);
//减3天
DateUtil.offsetDay(date, -3);
DateUtil.offset(date, DateField.DAY_OF_YEAR, -3);
//减3周
DateUtil.offsetWeek(date, -3);
DateUtil.offset(date, DateField.WEEK_OF_YEAR, -3); 
//减3月
DateUtil.offsetMonth(date, -3);
DateUtil.offset(date, DateField.MONTH, -3);
//减3年
DateUtil.offset(date, DateField.YEAR, -3);
//昨天
DateUtil.yesterday();
//明天
DateUtil.tomorrow();
//上周
DateUtil.lastWeek();
//下周
DateUtil.nextWeek();
//上个月
DateUtil.lastMonth();
//下个月
DateUtil.nextMonth();

3 Apache Commons实现日期时间偏移

String dateStr = "2021-05-25 22:33:23";
Date date = DateUtil.parse(dateStr);
//减3毫秒
DateUtils.addMilliseconds(date, -3);
DateUtils.date(date, 14, -3);
//减3秒
DateUtils.addSeconds(date, -3);
DateUtils.date(date, 13, -3);
//减3分钟
DateUtils.addMinutes(date, -3);
DateUtils.date(date, 12, -3);
//减3小时
DateUtils.addHours(date, -3);
DateUtils.date(date, 11, -3);
//减3天
DateUtils.addDays(date, -3);
DateUtils.date(date, 5, -3);
//减3周
DateUtils.addWeeks(date, -3);
DateUtils.date(date, 3, -3);
//减3月
DateUtils.addMonths(date, -3);
DateUtils.date(date, 2, -3);
//减3年
DateUtils.addYears(date, -3);
DateUtils.date(date, 1, -3);