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

这篇文章主要给大家介绍了关于如何在Java中为日期增加一天的多种方法,在JAVA业务代码中,经常会遇到通过指定时间,增加指定天数的业务需求,需要的朋友可以参考下

目录

前言

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

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

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

示例代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

// 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 中的日期添加一天。只需在日历类实例中添加一天即可完成:

代码如下(示例):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

// 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 添加一天。

代码:

代码如下(示例):

1

2

3

4

5

6

7

8

9

10

11

// 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 中。

代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

// 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 类来实现这个功能。以下是一个简单的示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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业务代码中,经常会遇到通过指定时间,增加指定天数的业务需求。话不多说,直接上代码:

1

2

3

4

5

6

7

8

9

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_脚本之家 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值