Date日期类型相加减操作

Date类型的数据进行相加减等操作,下面给大家介绍一种比较常见通用的工具类操作Date类型的实现日期加减
思路:将Date类型转换为LocalDate类型,在使用LocalDate本身的API进行时间加减操作,最后转换为Date类型返回


    public static void main(String[] args) {
 
        Date date = new Date();
        System.out.println("当前的日期为 = " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
 
        // 1.转换为localDate类型
        LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
 
        // 2.日期相加减
        // 添加1天 and 转换为Date日期格式输出
        LocalDate addDayTime = localDate.plusDays(1);
        Date addDay = Date.from(addDayTime.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
        System.out.println("添加一天后的日期为 = " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(addDay));
 
        // 添加1周 and 转换为Date日期格式输出
        LocalDate addWeekTime = localDate.plusWeeks(1);
        Date addWeek = Date.from(addWeekTime.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
        System.out.println("添加一周后的日期为 = " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(addWeek));
 
        // 添加1月 and 转换为Date日期格式输出
        LocalDate addMouthTime = localDate.plusMonths(1);
        Date addMouth = Date.from(addMouthTime.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
        System.out.println("添加一个月的日期为 = " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(addMouth));
 
        // 减少2天 and 转换为Date日期格式输出
        LocalDate minusDayTime = localDate.minusDays(2);
        Date minus2Day = Date.from(minusDayTime.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
        System.out.println("减少两天的日期为 = " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(minus2Day));
 
    }

### 如何在 Java 中对日期类型进行加减操作Java 中,可以使用 `java.util.Calendar` 类或者更现代的 `java.time` 包来实现日期类型加减操作。以下是两种方法的具体说明: #### 使用 `Calendar` 类 `Calendar` 是一个抽象类,在其中可以通过设置字段(如年、月、日等)来进行日期的操作。下面是一个通过 `add()` 方法增加或减少日期的例子。 ```java import java.util.Calendar; import java.util.Date; public class CalendarExample { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); // 设置当前时间 // 增加一天 calendar.add(Calendar.DAY_OF_MONTH, 1); // 减少一个月 calendar.add(Calendar.MONTH, -1); System.out.println("Updated Date: " + calendar.getTime()); } } ``` 上述代码展示了如何向当前日期添加一天以及减少一个月[^1]。 #### 使用 `java.time` 包 自 Java 8 起引入了新的日期和时间 API (`java.time`),它提供了更加直观的方式处理日期和时间。推荐优先使用此包中的类替代旧版的 `Date` 和 `Calendar`。 下面是利用 `LocalDateTime` 进行日期加减运算的示例: ```java import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; public class LocalDateTimeExample { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); // 加上两天 LocalDateTime plusDays = now.plus(2, ChronoUnit.DAYS); // 减去三小时 LocalDateTime minusHours = now.minus(3, ChronoUnit.HOURS); System.out.println("Original Time: " + now); System.out.println("After Adding Two Days: " + plusDays); System.out.println("After Subtracting Three Hours: " + minusHours); } } ``` 这段代码演示了如何使用 `plus()` 和 `minus()` 方法分别加上天数和减去年份的时间单位[^2]。 ### 总结 对于较老版本的 Java 应用程序来说,可能仍然依赖于 `Calendar` 来执行基本的日历计算;然而,如果项目允许升级到至少支持 JDK 8 的环境中,则建议采用更为简洁易读的新式 `java.time` 接口完成同样的功能需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值