Java日期加减

前言:
本章内容主要讲的是Date、Calendar、LocalDateTime三种时间类,进行日期之间的运算及使用

一、为什么需要使用日期加减?

  1. 方便:Java提供了丰富的日期类库,可以简化日期操作的实现。
  2. 灵活:Java日期类库支持多种日期格式,可以满足不同场景的需求。
  3. 高效:Java日期类库底层使用了高效的算法,可以提高日期操作的性能。

二、java日期加减使用范围及场景:

① 计算两个日期之间的差值,例如计算年龄、倒计时等。
② 对日期进行修改,例如计算某个日期的前一天或后一天。
③ 对日期进行格式化,例如将日期转换为指定的字符串格式或者时间戳
④ 对日期进行比较,例如判断两个日期是否相等、哪个日期在前等。

三、Java日期加减操作

Java日期加减可以使用java.util.Calendar类、java.time.LocalDate类、Date类来实现。这里给出三个示例,分别使用Calendar、LocalDate、Date进行日期加减操作。

3.1.使用Calendar

Java Calendar类是Java提供的一个抽象类,用于表示日历系统。它提供了一些方法和变量,可以用于获取和设置日期、时间、年份、月份、星期等。Calendar类是java.util包的一部分,它是java.util.Date类的子类。

Calendar类对象字段类型

字段值含义
YEAR
MONTH月(从0开始,可以+1使用)
DAY_OF_MONTH月中的天(几号)
HOUR时(12小时制)
HOUR_OF_DAY时(24小时制)
MINUTE
SECOND
DAY_OF_WEEK周中的天(周几,周日为1,可以-1使用)

代码演示:

import java.util.Calendar;  //这是Java语言中的一个导入语句,用于导入java.util包中的Calendar类。

 @Test
    public void showCalendar(){
      Calendar cld=Calendar.getInstance();  //获取当前日期
        // 加上5天
        cld.add(Calendar.DATE, 5);
        System.out.println("加上10天后的日期:" + cld.getTime());

        // 减去5天
        cld.add(Calendar.DATE, -5);
        System.out.println("减去5天后的日期:" + cld.getTime());
    }

输出效果如下:

在这里插入图片描述

3.2. 使用LocalDate类

Java的LocalDate类属于java.time包的一部分,是Java 8中重新实现的日期相关类之一。这个类没有包含时间和时区的概念,是线程安全的。LocalDate专门用于表示不包含时间的日期,以年、月、日的组合形式呈现,等价于一个日历日期。

代码演示:

import java.time.LocalDate;//这是Java语言中的一个导入语句,用于导入java.util包中的LocaLDate类。

 @Test
    public void showLocalDate(){
        // 获取当前日期
        LocalDate date = LocalDate.now();
        System.out.println("当前日期:" + date);

        // 加上10天
        LocalDate addDay = date.plusDays(10);
        System.out.println("加上10天后的日期:" + addDay);

        // 减去5天
        LocalDate delDay = date.minusDays(5);
        System.out.println("减去5天后的日期:" + delDay);
    }

输出效果如下:
> 当前日期:2023-11-23
加上10天后的日期:2023-12-03
减去5天后的日期:2023-11-18

3.3使用Date类

java.util.Date类表示特定的瞬间,精确到毫秒。Date类的构造函数可以把毫秒值转成日期对象。

代码演示:

import java.time.LocalDate;//这是Java语言中的一个导入语句,用于导入java.util包中的Date类。
 @Test
    public void showDate(){
        // 步骤1: 创建一个Date对象
        
        Date date = new Date(); //返回时间 Thu Nov 23 11:09:23 CST 2023  (2023-11-23 11:09:23)
        // 步骤2: 设置需要加的小时数
        Calendar cld = Calendar.getInstance();
        cld.setTime(date);
        cld.add(Calendar.HOUR, 3); //加3小时
        cld.add(Calendar.DATE, 2); //加2天
        cld.add(Calendar.YEAR, -1); //减一年

        // 步骤3: 获取加小时后的日期
        Date newDate = cld.getTime();

        // 步骤4: 输出加小时后的日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = sdf.format(newDate);
        System.out.println(formattedDate);
    }

显示效果如下:

> 2022-11-25 14:07:30

以上内容总结了Java中日期加减的操作方法和常用类,包括Calendar、Date、LocalDate,通过代码示例演示了如何实现日期的加减,帮助开发者更好地处理时间相关的问题。谢谢观看 ❀❀

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值