java中LocalDate、Calendar、Date类型进行加减

打印 上一主题 下一主题

主题 891|帖子 891|积分 2673

java三种类型的加减,LocalDate、Calendar、Date
@
目录

1.LocalDate类型加减:

以下是LocalDate类进行日期加减:
  1. import java.time.LocalDate;
  2. import java.time.temporal.ChronoUnit;
  3. public class DateDemo{
  4.     public static void main(String[] args) {
  5.         //获取当前日期
  6.         LocalDate currentDate = LocalDate.now();
  7.         System.out.println("当前日期是: " + currentDate);
  8.         //加上10天
  9.         LocalDate tenDaysLater = currentDate.plusDays(10);
  10.         System.out.println("加上10天后的日期是: " + tenDaysLater);
  11.         //减去2个月
  12.         LocalDate twoMonthsAgo = currentDate.minus(2, ChronoUnit.MONTHS);
  13.         System.out.println("减去2个月后的日期是: " + twoMonthsAgo);
  14.     }
  15. }
复制代码
运行结果:
  1. 当前日期是: 2023-11-23
  2. 加上10天后的日期是: 2023-12-03
  3. 减去2个月后的日期是: 2023-09-23
复制代码
可以看到,使用LocalDate类进行加减操作代码比较简洁清晰,也更易读易懂。
2.Calendar加减:

Java中的Calendar类提供了许多方法用于对日期和时间进行加减操作。以下是一些常用的方法:
add(int field, int amount): 对指定字段加上或减去指定的时间量,如Calendar.YEAR, Calendar.MONTH, Calendar.DATE等。
例如,下面的代码将当前日期上进行加减:
  1. import java.util.Calendar;
  2. public class DateCalculator {
  3.     public static void main(String[] args) {
  4.         // 获取当前日期
  5.         Calendar calendar = Calendar.getInstance();
  6.         System.out.println("当前日期:" + calendar.getTime());
  7.         // 加上3天
  8.         calendar.add(Calendar.DATE, 3);
  9.         System.out.println("加上3天后:" + calendar.getTime());
  10.         // 减去1个月,需要注意的是,由于Calendar类的月份从0开始,因此加减月份时需要注意月份的计算。
  11.         calendar.add(Calendar.MONTH, -1);
  12.         System.out.println("减去1个月后:" + calendar.getTime());
  13.         // 加上2年
  14.         calendar.add(Calendar.YEAR, 2);
  15.         System.out.println("加上2年后:" + calendar.getTime());
  16.     }
  17. }
复制代码
输出结果:
  1. 当前日期:Thu Nov 23 10:42:18 CST 2023
  2. 加上3天后:Sun Nov 26 10:42:18 CST 2023
  3. 减去1个月后:Thu Oct 26 10:42:18 CST 2023
  4. 加上2年后:Sun Oct 26 10:42:18 CST 2025
复制代码
3.Date类型加减

Date类型在java 8中已经废弃,需要转换为Calendar类型进行加减。
转换Calendar类加减时间:
  1. // 创建Calendar对象
  2.         Calendar calendar = Calendar.getInstance();
  3.         //创建Date类型默认时间
  4.         Date date = new Date();
  5.         System.out.println("加减前的日期:"+date);
  6.         //将Date类型转换为Calendar类型
  7.         calendar.setTime(date);
  8.         // 加上一小时
  9.         calendar.add(Calendar.HOUR_OF_DAY, 1);
  10.         // 减去一天
  11.         calendar.add(Calendar.DAY_OF_MONTH, -1);
  12.         // 获取加减后的日期
  13.         date = calendar.getTime();
  14.         System.out.println("加减后的日期:"+date);
复制代码
运行结果:
  1. 加减前的日期:Thu Nov 23 11:02:55 CST 2023
  2. 加减后的日期:Wed Nov 22 12:02:55 CST 2023
复制代码
在这个例子中,我们使用了Calendar类进行日期的加减操作。我们首先创建了一个Calendar对象,并通过setTime()方法设置日期,然后使用add()方法加减日期,最后使用getTime()方法获取加减后的日期。
值得注意的是,Calendar类中有很多常量可以用来表示不同的时间单位,如HOUR_OF_DAY代表小时,DAY_OF_MONTH代表日,等等。
总的来说,使用Date类和Calendar类进行日期加减操作是非常灵活和方便的。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万有斥力

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表