JavaでDate型の日時を加算、減算する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaでDate型の日時を加算、減算する方法について解説しています。最初に日時を扱うDate型とCalendar型の違いを解説します。Date型をCalendar型に変換し、addメソッドを使って計算を行う方法を覚えましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

JavaでDate型の日時を加算、減算する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。

 

田島悠介

今回は、Javaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Date型の日時を加算、減算する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

目次

 

Date型とは

Date型は、Javaにおいて日時の処理を行なうために定義されたデータ型です。

Date型の持つ日時情報は「1970年1月1日0時からの経過時間」をミリ秒単位で示したものです。

また、printlnメソッドなどで表示すると、下記のように年月日と曜日まで加えてわかりやすく表示してくれます。

Tue Feb 18 17:38:14 JST 2020

 

 

[PR] Javaで挫折しない学習方法を動画で公開中

Calendarクラスとは

CalendarクラスはDate型と同じように日時を扱うことのできるデータ型です。

Calendarクラスは、Date型よりも細かい日時の演算が可能です。

Date型の演算を行ないたい場合には、Calendar型に変換し、演算処理などを行ないます。

Date型をCalendar型に変換する場合、setTimeメソッドを使って下記のように記述しましょう。

 

Calendar Calendar型オブジェクト名 = Calendar.getInstance();

Calendar型オブジェクト名.setTime(Date);

 

逆に、Calendar型からDate型を取得するには、getTimeメソッドを使い下記のように記述します。

Date型オブジェクト名 = Calendar型オブジェクト名.getTime();

 

Date型の日時を加算する方法

Date型ので日時を加算する方法としては、Calendar型のaddメソッドを使います。

addメソッドは、下記のように記述しましょう。

Calendar型.add(年or月or日or時間or分などを指定, 加算する値);

 

第一引数の部分に関しては、以下のいずれかを指定します。

  • 年→Calendar.YEAR
  • 月→Calendar.MONTH
  • 日→Calendar.DAY_OF_MONTH など
  • 時間→Calendar.HOUR_OF_DAY など
  • 分→Calendar.MINUTE

 

例えば、2ヶ月先の日時を取得したい場合は、下記のようにCalendar型に変換してからDate型に変換してみましょう。

Calendar型.add(Calendar.MONTH, 2);

 

Date型の日時を減算する方法

Date型の日時を減算する方法は、加算の場合と同じくCalendar型のaddメソッドを使います。

加算のときは、第二引数に正の整数を指定、減算の場合には、第二引数に負の整数を指定する点に注意が必要です。

単純に数字にマイナスをつければ問題ないので、減算は難しくないでしょう。

例えば、2ヶ月前の日時を取得したい場合、Date型をCalendar型に変換した後、下記のように記述し、さらにDate型に変換すれば取得できます。

Calendar型.add(Calendar.MONTH, -2);

 

実際に書いてみよう

それでは、コードで日時の加算、減算をしてみましょう。

import java.util.Date;
import java.util.Calendar;

class DateSample{
        public static void main(String args[]){

                //日時を格納するためのDateクラスを宣言(現在時刻)
                 Date date = new Date();
 
                 Calendar calendar = Calendar.getInstance();
                 calendar.setTime(date);

                //Date型の持つ日時を表示
                 System.out.println(date);
 
                 //Date型の持つ日時の4年後を表示(日時の加算)
                 calendar.add(Calendar.YEAR, 4);
                 date = calendar.getTime();
                 System.out.println(date);

                //Date型の持つ日時の3日前を表示(日時の減算)
                 calendar.add(Calendar.DAY_OF_MONTH, -3);
                 date = calendar.getTime();
                System.out.println(date);

        }
}

実行結果

Tue Feb 18 18:57:08 JST 2020
Sun Feb 18 18:57:08 JST 2024
Thu Feb 15 18:57:08 JST 2024

順に現在時刻、4年後の時刻、その3日前の時刻、が表示されており、日時の演算がうまくいったことが確認できます。

 

まとめ

この記事では、JavaにおけるDate型の日時の計算方法について解説しました。

日時を扱う処理はところどころで出てくるので、覚えておきましょう。

 

執筆してくれたメンター

小倉翔悟 (おぐらしょうご)

AIプログラミングを使って開発を行う大学3年生。

プログラミング歴は約3年。

Pythonは割と好きな方。

JavaもAndroid開発で触れていたりする。

大学では物理学を勉強中。

好きな物理理論は一般相対性理論らしい。

意外と動物が好きだったり、、、。

 

大石ゆかり

JavaでDate型の日時を加算、減算する方法がよく分かったので良かったです!

田島悠介

ゆかりちゃん、これからも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、参加してみてください。