这篇文章主要给大家介绍了关于如何在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_脚本之家