🤭一、为什么使用日期加减
日期的加减可以实现日期的计算和调整,可以方便地进行日期的增加和减少操作。例如,可以根据当前日期计算未来的某一天或者过去的某一天,也可以根据当前日期进行日期的调整,如增加或减少某一天、月、年等。
😛二、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()方法来复制一个新的日期对象。