【Java入門】Dateクラスで現在日時の取得と加算/減算などの計算(add)

こんにちは!フリーエンジニアのせきです。

Javaでは、日時の取得や加算などの計算を行うことができます。

この記事では、

  • 現在の日時を取得
  • 加算されるDate型の日時の作成
  • Date型の日時の加算、減算
  • 加算後のDate型への変換
  • 現在の時間を取得して日時を計算する方法

などの基本的な内容から、応用的な内容に関しても解説していきます。今回はそんな日時の加算について、さまざまな方法をわかりやすく解説します!

Dateクラスとは

Dateクラスは日時を取得したり、日時を計算するときに使用する日付型のクラスです。Dateクラスを使用するには「import java.util.Date」のインポート文が必要です。

現在の日時を取得する方法

ここでは、Dateクラスを使って現在日時を取得する方法を解説します。

new演算子使用してDateクラスのインスタンスを生成した時点で、Dateクラスのオブジェクトには現在の日時が返されます。現在日時を取得する方法を次のプログラムで確認してみましょう。

実行結果:

このようにして現在の日時を取得することができました。

Date型のフォーマットを指定する方法

SimpleDateFormatクラスを使うと、任意の日時フォーマットでDate型の日時を作成することができます。

実行結果:

“yyyy/MM/dd HH:mm:ss”が任意の日時フォーマットです。ここで指定したフォーマットを使い、次の行で日時を設定しています。

SimpleDateFormatについては、以下の記事で詳しく解説しています。

【Java入門】SimpleDateFormatで日付フォーマットの設定
更新日 : 2019年4月20日

Date型の日時をCalendarクラスで計算する方法

日時の加算をするメソッドはCalendarクラスに用意されています。そのため、さきほど作成したDate型の日時をCalendar型に変換する必要があります。

Calendarクラスのインスタンスを作りsetTimeメソッドにDate型の日時を指定することで、Calendarクラスのインスタンスに日時が設定されます。これで、加算する準備はできました。

加算する方法

まずは月の加算をしてみます。加算はCalendarクラスのaddメソッドを使います。

第1引数が加算するフィールド、第2引数が加算する量です。これで、3月分が加算されます。例えば、2017年4月現在、3が加算されると2017年7月になります。

今度は日付ではなく、時間の加算です。分の加算をしてみます。

これで、5分が加算されます。日時と同じですね。

加算するフィールドは日付、時間ともにCalendarクラスに定数が用意されていますので、それを使います。

減算する方法

Calendarクラスのaddメソッドは、加算だけでなく減算もすることができます。減算する時は、第2引数の加算する量をマイナス値で指定します。

このようにすると、3月分が減算されます。例えば、2017年4月現在、3が減算されると2017年1月ですね。

Calender型からDate型に変換する方法

加算した結果を、任意の日時フォーマットで表示してみます。

そのためには、Calendar型の日時をDate型に戻して、SimpleDateFormatクラスを使います。Date型に戻すには、CalendarクラスのgetTimeメソッドを使います。

実行結果:

SimpleDateFormatクラスのformatメソッドにDate型の日時を渡すと、最初にSimpleDateFormatに指定した日時フォーマットで、日時を文字列で返してくれます。

現在の時間を取得して日時を計算する方法

日時を計算する場合、現在の時間に対して加算、減算することがよくあります。現在の時間を取得するにはDateクラスを使う方法とCalenderクラスを使う方法があります。

それぞれの方法について使い方をみていきましょう。

Dateクラスを使う場合

Dateクラスを使って現在の時間を取得する場合、引数なしでDateオブジェクトを生成することで取得することができます。

実行結果:

Calenderクラスを使う場合

Calenderクラスを使って現在の時間を取得する場合、getInstanceメソッドで Calendar オブジェクトを生成することで取得することができます。

実行結果:

Date型についてもっと詳しく知りたい方へ

Dateのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java入門】Dateクラスで日付を扱う方法をわかりやすく解説!
更新日 : 2018年11月27日

Calender型についてもっと詳しく知りたい方へ

Calenderのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java入門】Calendarクラスの使い方総まとめ
更新日 : 2018年11月27日

まとめ

今回はDate型の日時の加算をする方法について解説しました。

Date型の日時の加算にはCalendarクラスを使うことがポイントです。日時の加算方法、Date型とCalendar型の変換を忘れてしまったら、この記事を思い出して下さい!

Javaカリキュラム無料公開中!

この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。

Java入門からアプリ開発まで未経験者が知っておくべき基礎を総ざらい
更新日 : 2019年5月22日

最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java1
LINEで送る
Pocket

書いた人

せき

せき

フリーランスでWebシステム開発やゲーム開発をしています。
読者の方にプログラミングの面白さをお伝えしたいです。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説