Java 8 提供了一组全新的日期和时间库,其中 LocalDate、LocalTime、LocalDateTime 用于代替旧的 Date、Calendar 等类。下面主要介绍 LocalDate 的日期加减、年份月份加减、时间差的处理方法。
日期加减
使用 plusDays(long daysToAdd) 方法可以对日期进行加操作,该方法返回一个新的日期对象。
示例1:将某日期加上 5 天
LocalDate date = LocalDate.now(); // 获取当前日期
LocalDate newDate = date.plusDays(5); // 将日期加上 5 天
System.out.println("当前日期为:" + date); // 打印当前日期
System.out.println("加上 5 天后的日期为:" + newDate); // 打印加上 5 天后的日期
输出结果:
当前日期为:2021-07-23
加上 5 天后的日期为:2021-07-28
年份月份加减
使用 plusYears(long yearsToAdd)、plusMonths(long monthsToAdd) 方法可以对年份、月份进行加操作,同样也返回一个新的 LocalDate 对象。
示例2:将某日期加上 1 年 2 个月
LocalDate date = LocalDate.now(); // 获取当前日期
LocalDate newDate = date.plusYears(1).plusMonths(2); // 将日期加上 1 年 2 个月
System.out.println("当前日期为:" + date); // 打印当前日期
System.out.println("加上 1 年 2 个月后的日期为:" + newDate); // 打印加上 1 年 2 个月后的日期
输出结果:
当前日期为:2021-07-23
加上 1 年 2 个月后的日期为:2022-09-23
时间差
使用 between(Temporal startInclusive, Temporal endExclusive) 方法可以计算两个日期之间的时间差,返回一个 Duration 对象。
示例3:计算两个日期之间的时间差
LocalDate date1 = LocalDate.of(2021, 7, 1);
LocalDate date2 = LocalDate.of(2021, 7, 23);
Duration duration = Duration.between(date1.atStartOfDay(), date2.atStartOfDay()); // 计算两个日期之间的时间差,注意需要使用 atStartOfDay() 方法将 LocalDate 转为 LocalDateTime
System.out.println("日期1:" + date1);
System.out.println("日期2:" + date2);
System.out.println("时间差:" + duration.toDays() + " 天"); // 打印时间差
输出结果:
日期1:2021-07-01
日期2:2021-07-23
时间差:22 天
以上就是 Java 对日期进行加减运算、年份加减月份加减、时间差等等的攻略。需要注意的是,LocalDate 类是线程安全的,不需要进行同步处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java对日期Date类进行加减运算、年份加减月份加减、时间差等等 - Python技术站