Date日期类型相加减操作(超详细)

文章介绍了在Java开发中如何利用LocalDate进行Date类型的时间加减操作。首先将Date转换为LocalDate,然后使用LocalDate的plusDays、plusWeeks、plusMonths等方法进行日期的增加或减少,最后再转换回Date类型。这种方法利用了LocalDate提供的丰富API,简化了日期处理的复杂性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Date类型的时间操作我们在日常开发中经常使用,也会经常使用Date类型的数据进行相加减等操作,下面给大家介绍一种比较常见通用的工具类操作Date类型的实现日期加减

思想

将Date类型转换为LocalDate类型,在使用LocalDate本身的API进行时间加减操作,最后转换为Date类型返回

代码


    /**
     * ps:为了直观,将Date类型转换为字符串打印
     *
     * @param args
     */
    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));

    }

总结

LocalDate封装了很多常用的对日期操作的API,非常强大!,希望能帮助到大家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值