在Java中为日期增加一天的多种方法

 更新时间:2023年07月05日 15:57:57   作者:数据大魔王  
这篇文章主要给大家介绍了关于如何在Java中为日期增加一天的多种方法,在JAVA业务代码中,经常会遇到通过指定时间,增加指定天数的业务需求,需要的朋友可以参考下

前言

在本教程中,我们将学习如何在 Java 中将日期增加一天。这可以通过使用各种方法来完成,例如 plusDays 方法,Calendar 类方法,向 Date 对象添加毫秒以及 Instant class 方法。如果你使用的是 Java 1.8 或更高版本,我们建议使用 plusDays 方法。

一、用 plusDays() 方法将 Java 中的日期增加一天

在 Java 1.8 及更高版本中,新的 java.time 类(即 LocalDate,LocalDateTime)具有 plusDays 和 minusDays 方法,可从任何时间实例中添加和减去时间单位。

示例代码:

// java 1.8
package simpletesting;
import java.time.LocalDateTime;
public class SimpleTesting {
    public static void main(String[] args) {
        LocalDateTime today = LocalDateTime.now();     //Today
        LocalDateTime tomorrow = today.plusDays(1);     //Plus 1 day
        LocalDateTime yesterday = today.minusDays(1);   //Minus 1 day
        System.out.println("Today:     "+today);
        System.out.println("Tomorrow:  "+tomorrow);
        System.out.println("Yesterday: "+yesterday);
    }
}

输出:

Today:     2020-03-22T19:01:00.728
Tomorrow:  2020-03-23T19:01:00.728
Yesterday: 2020-03-21T19:01:00.728

二、用 Calendar 方法将 Java 中的日期增加一天

我们可以使用日历 Calendar 类向 Java 中的日期添加一天。只需在日历类实例中添加一天即可完成:

代码如下(示例):

// java 1.8
package simpletesting;
import java.util.Calendar;
import java.util.Date;
public class SimpleTesting {
    public static void main(String[] args) {
        Date dt = new Date();
        System.out.println("Today:    "+dt);
        Calendar c = Calendar.getInstance();
        c.setTime(dt);
        c.add(Calendar.DATE, 1);
        dt = c.getTime();
        System.out.println("Tomorrow: "+dt);
    }
}

输出:

Today:    Sun Mar 22 19:07:48 PKT 2020
Tomorrow: Mon Mar 23 19:07:48 PKT 2020

三、用 Milliseconds 方法将 Java 中的日期增加一天

Java 日期有一个使用毫秒的构造函数。getTime() 方法为我们提供了该值。因此,增加一天的毫秒数将为 Date 添加一天。

代码:

代码如下(示例):

// java 1.8
package simpletesting;
import java.util.Date;
public class SimpleTesting {
    public static void main(String[] args) {
        Date dt = new Date();
        System.out.println("Today:    " + dt);
        Date tomorrow = new Date(dt.getTime() + (1000 * 60 * 60 * 24));
        System.out.println("Tomorrow: " + tomorrow);
    }
}

输出:

Today:    Sun Mar 22 19:15:27 PKT 2020
Tomorrow: Mon Mar 23 19:15:27 PKT 2020

请注意,如果我们使用带有夏令时的日历时区,则可能不会跳到第二天。

四、用 Instant 类向 Java 日期添加一天

Java Instant 类几乎等同于日期。Instant 解析为纳秒。instant.plus 方法将给定的天数添加到 Date 中。

代码:

// java 1.8
package simpletesting;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.Date;
public class SimpleTesting {
    public static void main(String[] args) {
        Date dt = new Date();
        System.out.println("Today:    " + dt);
        Instant instant = dt.toInstant();
        Instant nextDay = instant.plus(1, ChronoUnit.DAYS);
        System.out.println("Tomorrow: " + nextDay);
    }
}

输出:

Today:    Sun Mar 22 19:19:58 PKT 2020
Tomorrow: 2020-03-23T14:19:58.072Z

总结

可以使用 java.util.Calendar 类来实现这个功能。以下是一个简单的示例:

import java.util.Calendar;
import java.util.Date;
public class AddOneDay {
    public static void main(String[] args) {
        // 创建一个 Calendar 实例
        Calendar calendar = Calendar.getInstance();
        // 获取当前日期
        Date currentDate = new Date();
        System.out.println("当前日期: " + currentDate);
        // 将 Calendar 设置为当前日期
        calendar.setTime(currentDate);
        // 为 Calendar 增加一天
        calendar.add(Calendar.DATE, 1);
        // 获取增加一天后的日期
        Date nextDate = calendar.getTime();
        System.out.println("增加一天后的日期: " + nextDate);
    }
}

在这个示例中,我们首先创建了一个 Calendar 实例,并将其设置为当前日期。然后,我们使用 add 方法为日期增加一天。最后,我们使用 getTime 方法获取增加一天后的日期。

补充知识:JAVA根据时间增加1天

业务场景

在JAVA业务代码中,经常会遇到通过指定时间,增加指定天数的业务需求。话不多说,直接上代码:

String time = "2021-12-1"; //指定时间
        int day = 30;//指定增加天数
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
        Date timeNow = sf.parse(time);
        Calendar c = Calendar.getInstance();
        c.setTime(timeNow); 
        System.out.println("当前日期:"+sf.format(timeNow));
        c.add(Calendar.DAY_OF_MONTH, day);
        System.out.println("增加后日期:"+sf.format(c.getTime()));

执行结果

到此这篇关于在Java中为日期增加一天的文章就介绍到这了,更多相关Java日期增加一天内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决eclipse中maven引用不到已经存在maven中jar包的问题

    解决eclipse中maven引用不到已经存在maven中jar包的问题

    这篇文章主要介绍了解决eclipse中maven引用不到已经存在maven中jar包的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Java多线程中线程间的通信实例详解

    Java多线程中线程间的通信实例详解

    这篇文章主要介绍了Java多线程中线程间的通信实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • SpringBoot使用Apache POI库读取Excel文件的操作详解

    SpringBoot使用Apache POI库读取Excel文件的操作详解

    在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到需要读取和操作Excel文件的场景,本文将详细介绍如何使用Java中的Apache POI库来读取Excel文件,需要的朋友可以参考下
    2025-01-01
  • spring security国际化及UserCache的配置和使用

    spring security国际化及UserCache的配置和使用

    这篇文章主要介绍下国际化的配置及UserCache的配置及使用教程,感兴趣的朋友参考下实现代码吧
    2017-09-09
  • 关于Java变量的声明、内存分配及初始化详解

    关于Java变量的声明、内存分配及初始化详解

    下面小编就为大家带来一篇关于Java变量的声明、内存分配及初始化详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 深入探讨Java超时自动取消的实现方案

    深入探讨Java超时自动取消的实现方案

    在复杂的分布式系统中,超时控制是保障系统稳定性和可用性的关键机制,本文将深入探讨Java中实现超时自动取消的多种方案,希望对大家有所帮助
    2024-11-11
  • SpringBoot实现健康检查的完整指南

    SpringBoot实现健康检查的完整指南

    本文介绍了Spring Boot实现健康检查的方法,包括使用Actuator进行应用健康检查,自定义健康检查项目,搭建可视化监控大屏和配置告警系统,此外,还提供了实战案例和避坑指南,帮助读者更好地理解和应用Spring Boot健康检查功能,需要的朋友可以参考下
    2025-12-12
  • Java实现邮箱发送功能实例(阿里云邮箱推送)

    Java实现邮箱发送功能实例(阿里云邮箱推送)

    这篇文章主要给大家介绍了关于Java实现邮箱发送功能的相关资料,利用阿里云邮箱推送,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • MyBatis-Plus拦截器实现数据权限控制的方法

    MyBatis-Plus拦截器实现数据权限控制的方法

    MyBatis-Plus是一款基于MyBatis的增强工具,它提供了一些便捷的功能和增强的查询能力,数据权限控制是在系统中对用户访问数据进行限制的一种机制,这篇文章主要给大家介绍了关于MyBatis-Plus拦截器实现数据权限控制的相关资料,需要的朋友可以参考下
    2024-01-01
  • 使用JPA主键@Id,@IdClass,@Embeddable,@EmbeddedId问题

    使用JPA主键@Id,@IdClass,@Embeddable,@EmbeddedId问题

    这篇文章主要介绍了使用JPA主键@Id,@IdClass,@Embeddable,@EmbeddedId问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论