java日期加减

本文介绍了在Java中使用Calendar、LocalDateTime以及Duration进行日期加减操作的方法,包括Calendar的add()函数、LocalDateTime的加减年月日时分秒,以及Duration用于计算时间间隔的应用。
摘要由CSDN通过智能技术生成

🤭一、为什么使用日期加减

日期的加减可以实现日期的计算和调整,可以方便地进行日期的增加和减少操作。例如,可以根据当前日期计算未来的某一天或者过去的某一天,也可以根据当前日期进行日期的调整,如增加或减少某一天、月、年等。

😛二、Calendar 加减的方法

1、创建一个Calendar实例,可以通过getInstance()方法获取一个默认的Calendar实例,也可以使用Calendar类的构造方法来创建指定日期的实例。

Calendar calendar = Calendar.getInstance();

2、然后,使用Calendar类的add()方法进行日期的加减操作。add()方法接受两个参数,第一个参数是表示日期字段的常量,例如Calendar.YEAR表示年份,Calendar.MONTH表示月份,Calendar.DAY_OF_MONTH表示日期等等;第二个参数是要加减的数量,正数表示加,负数表示减。

calendar.add(Calendar.DAY_OF_MONTH, 7); // 在当前日期上加7天
calendar.add(Calendar.MONTH, -1); // 在当前日期上减1个月
calendar.add(Calendar.YEAR, 1);//增加一年
calendar.add(Calendar.DATE, 1);//增加一天
calendar.add(Calendar.DATE, -10);//减10天

3、通过Calendar类的getTime()方法将Calendar实例转换为Date实例,以便进一步处理或显示。

Date date = calendar.getTime();

完整的示例代码如下:


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

public class Main {
        public static void main(String[] args) {
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.MONTH, -1); // 在当前日期上减1个月
            calendar.add(Calendar.YEAR, 1);//增加一年
            calendar.add(Calendar.DATE, 1);//增加一天
            calendar.add(Calendar.DATE, -10);//减10天
            Date date = calendar.getTime();
            System.out.println(date);
    }
}

运行结果:

在这里插入图片描述

😆三、LocalDateTime 加减的方法

1、定义LocalDateTime的方法

LocalDateTime localDateTime = LocalDateTime.now();//获取当前时间

2、然后,使用LocalDateTime 类的方法进行日期的加减操作。
对于LocalDateTime,则可以进行任意精度的时间相加减;
语法: localDateTime.plusYears (2L) 加减年份 括号里面为long类型


import java.time.LocalDateTime;

public class Main {
        public static void main(String[] args) {
            LocalDateTime localDateTime = LocalDateTime.now();//获取当前时间
            LocalDateTime plusYearsResult = localDateTime.plusYears(2L);//当前时间加2年后为
            LocalDateTime plusMonthsResult = localDateTime.plusMonths(3L);//当前时间加3个月后为
            LocalDateTime plusDaysResult = localDateTime.plusDays(7L);//当前时间加7日后为
            LocalDateTime plusHoursResult = localDateTime.plusHours(2L);//当前时间加2小时后为
            LocalDateTime plusMinutesResult = localDateTime.plusMinutes(10L);//当前时间加10分钟后为
            LocalDateTime plusSecondsResult = localDateTime.plusSeconds(10L);//当前时间加10秒后为
            System.out.println("当前时间是 :"+ localDateTime + "\n" +
                    "当前时间加2年后为 :" + plusYearsResult  + "\n"+
                    "当前时间加3个月后为 :"+ plusMonthsResult + "\n"+
                    "当前时间加7日后为 ;"+ plusDaysResult + "\n"+
                    "当前时间加2小时后为 :"+ plusHoursResult + "\n"+
                    "当前时间加10分钟后为 :"+ plusMinutesResult + "\n"+
                    "当前时间加10秒后为 :"+ plusSecondsResult + "\n");
        }
}

运行结果:
在这里插入图片描述

😀四、Duration 计算时间间隔

LocalDateTime date1 = LocalDateTime.now();//获取当前时间
        LocalDateTime date2 = LocalDateTime.of(2022, 11, 22, 1, 1, 1);//赋值
        Duration duration = Duration.between(date2, date1);
        System.out.println(" 天 :" + duration.toDays() + "\n"
                + " 时 :" + duration.toHours() + "\n"
                + " 分 :" + duration.toMinutes());

运行结果:
在这里插入图片描述

🤪五、总结

需要注意的是,Calendar类中的加减操作是修改原日期对象的,并没有返回新的日期对象。如果需要创建新的日期对象,可以使用Calendar的clone()方法来复制一个新的日期对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值