HOWTO · Java

如何在 Java 中為日期增加一天

本教程介紹如何使用幾種解決方案(例如 Calendar 類,Days,Instant 類)向 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