注目記事

【Javaコード入門】日付/時刻(Date-Time API)_⑤日時データを演算する

public LocalDateTime plus(long value, TemporalUnit unit)
public LocalDateTime minus(long value, TemporalUnit unit)
 value:増減分
 unit:単位

plus/minusメソッドを利用することで、日付時刻要素を加算/減算できます。引数unitには、TemporalUnitインターフェイスの実装クラスであるChronoUnitの定数として、加算/減算する単位を指定します。

TemporalUnitインターフェイスの主な定数
定数 概要
YEARS
MONTHS
DAYS
WEEKS
HOURS
MINUTES
SECONDS
MILLIS ミリ秒
MICROS マイクロ秒
NANOS ナノ秒

以下は、あらかじめ用意した日付に対して3か月後、10日前の日付を求める例です。

TimePlus.java

  1. package com.example.mynavi.datetime;
  2.  
  3. import java.time.LocalDateTime;
  4.  
  5. public class TimePlus {
  6.   public static void main(String[] args) {
  7.     var local = LocalDateTime.parse("2025-09-01T12:30");
  8.     System.out.println(local);  // 結果:2025-09-01T12:30
  9.     System.out.println(local.plusMonths(3));    // 結果:2025-12-01T12:30
  10.     System.out.println(local.minusDays(10));    // 結果:2025-08-22T12:30
  11.   }
  12. }

なお、plus/minusメソッドには、それぞれ個々の日付/時刻要素に特化した、以下のようなメソッドもあります。

日付/時刻を加算/減算するためのメソッド
メソッド 概要
plusYears/minusYears
plusMonths/minusMonths
plusDays/minusDays
plusWeeks/minusWeeks 週数
plusHours/minusHours
plusMinutes/minusMinutes
plusSeconds/minusSeconds
plusNanos/minusNanos ナノ秒
日付/時刻(Date-Time API)_目次
日付/時刻(Date-Time API)
now/of/parseメソッド
formatメソッド
betweenメソッド
日時データを演算する
Date/Calendarクラス⇔DateTime-APIのクラスを相互変換する

監修

山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。