Java で日付に 1 日を追加する方法

Asad Riaz 2023年10月12日
  1. Java で日付に 1 日を追加する plusDays() メソッド
  2. Java で日付に 1 日を追加する Calendar メソッド
  3. Java で日付に 1 日を追加するには、ミリ秒を追加する
  4. Java で日付に 1 日を追加する Instant クラス
Java で日付に 1 日を追加する方法

このチュートリアルでは、Java で日付に日を追加する方法を学びます。これは、plusDays メソッド、Calendar クラスメソッドなどのさまざまなアプローチを使用して、ミリ秒を Date オブジェクトに追加し、Instant クラスメソッドを使用して実行できます。Java 1.8 以降を使用している場合は、plusDays アプローチが推奨されます。

Java で日付に 1 日を追加する plusDays() メソッド

Java 1.8 以降では、新しい java.time クラス、つまり LocalDateLocalDateTimeplusDays メソッドと 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

Java で日付に 1 日を追加する Calendar メソッド

Calendar クラスを使用して、JavaDate に 1 日を追加できます。Calendar クラスのインスタンスに 1 日追加するだけで実行できます:

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

Java で日付に 1 日を追加するには、ミリ秒を追加する

Date には、ミリ秒を使用するコンストラクタがあります。getTime() メソッドはその値を提供します。したがって、1 日のミリ秒を追加すると、Date に 1 日が追加されます。

コード:

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

夏時間のあるカレンダータイムゾーンを使用すると、翌日にジャンプしない場合があるので注意してください。

Java で日付に 1 日を追加する Instant クラス

Instant クラスは Date とほぼ同じです。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 DateTime