Java日期加减

发布时间 2023-11-25 11:44:16作者: 星川~

 

概括:
在开发Java应用程序时,经常需要对日期进行加减操作。日期的加减操作在很多场景下都非常有用,比如计算某个事件发生前后的日期,计算某个日期之后的一段时间等等。本文将介绍Java中进行日期加减的方法,并给出相应的代码示例。

1.使用Calendar

在Java中,可以使用Calendar类来进行日期和时间的处理。Calendar类提供了对日期进行加减操作的方法。

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());
    }

 

输出效果如下:

当前时间: Thu Nov 23 10:35:13 CST 2023
加上10天后的日期:Tue Nov 28 10:35:13 CST 2023
减去5天后的日期:Thu Nov 23 10:35:13 CST 2023

2. 使用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.使用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