[Java] 日付の計算方法(DateFormat、Date、Calendar)

こんにちは、kei0310です。

Javaで日付を計算する方法について解説します。

まず、任意の日付をつくるためには、DateFormatを利用します。
SimpleDateFormatクラスはとても重いクラスなので、やたらめったらnewするとパフォーマンスが落ちますが、この話をすると記事の範疇を超えるので割愛します。
※特にWebアプリのようなマルチスレッド環境でSimpleDateFormatを取り扱うときは注意が必要です。

DateFormatの取り扱い自体は簡単で、以下のように記述します。

// DateFormat作成
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
// 日付文字列をDate型に変換
Date dt = df.parse("2014-08-01");

あとは、Calendarクラスを介して日付の計算を行います。
以下は、そのままコピペして使えるサンプルになります。

●日付の計算サンプル

package test.date;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TestDateCalc {

	public static void main(String[] args) throws ParseException{

		// DateFormat
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

		// 2014/08/01でDateオブジェクト作成
		Date dt = df.parse("2014-08-01");

		// カレンダークラスのインスタンスを取得
		Calendar cal = Calendar.getInstance();

		// 現在時刻を設定
		cal.setTime(dt);

		// 150日を加算
		cal.add(Calendar.DATE, 150);
		// 結果を表示
		System.out.println(df.format(cal.getTime()));

		// 2カ月を加算
		cal.add(Calendar.MONTH, 2);
		// 結果を表示
		System.out.println(df.format(cal.getTime()));

		// 1年を減算
		cal.add(Calendar.YEAR, -1);
		// 結果を表示
		System.out.println(df.format(cal.getTime()));

	}
}

●結果

2014-12-29
2015-02-28
2014-02-28

スポンサードリンク

関連記事

no image

[Java][Jersey] JerseyでRESTfulなJAX-RS Webサービス作成

こんにちは、keiです。 今回はRESTfulなWeb Serviceの作成を行っていきます。

記事を読む

no image

[Java] クラスとインスタンス

こんにちは。 クラスとインスタンスについて解説します。 インスタンスは「オブジェクト」とも言

記事を読む

no image

[Java][Spring] Spring3でDIしてみる!(アノテーション使用)

Spring3を使って、一番基本的な形のプログラムを作成してみます。 今回は、アノテーションを

記事を読む

no image

[Java][MySQL] JavaからMySQLを使う方法

MySQLは、フリーでありながら商用としても使用できるパワーを持つデータベース(RDB)です。

記事を読む

no image

[Java] テキストファイルの読み込み方法

こんにちは、今回はテキストファイルをJavaで読む方法を紹介します。 標準で提供されているクラ

記事を読む

no image

[Java][Framework] Spring BootのJPAでDB接続した際のEntityキャッシュのクリア方法

Spring BootのJPAでDBアクセスした際に、処理を一定量こなすと、Heapが足りなくな

記事を読む

no image

[java] 文字列の一部を切り取る方法(substring)

こんにちは。 今回は文字列の一部を切り取る方法について解説します。 具体的には、String

記事を読む

no image

[Java][Framework] Spring Bootを使って、Spring MVC速攻開発してみる!(DB接続あり)

STSインストール STSは、EclipseにSpring関連のいろいろな機能を詰め込んだオールイ

記事を読む

no image

[Java][Servlet][JSP] ServletからJSPへの転送

こんにちは。 今回は、「Servletでリクエストを受けて、JSPで表示する。」方法を解説しま

記事を読む

no image

[Java] CSVファイルの読み込み方法

こんにちは、kei0310です。 CSVファイルをJavaに取り込む方法を解説します。

記事を読む

スポンサードリンク

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

no image
CentOSにdockerをインストールしてみた

前置き dockerをcentos7にインストールしてみました

no image
awkでのgsubを使った文字列置換(正規表現)

まえおき bashなどのシェルスクリプトで、lsした結果とかを

no image
bashで並列処理する方法(xargs)

並列処理とは 通常、意識せずにプログラムを書くと、大体の場合は

no image
AWS Redshiftの使用ストレージ容量をクエリで調べる方法

用途 AWS Redshfitのコンソールを見れば、使用中のス

no image
pythonでstorage transfer serviceを使ってみた。

準備 pythonのインストールとかする。 このあたり。

→もっと見る

  • 2026年10月
    月 火 水 木 金 土 日
     1234
    567891011
    12131415161718
    19202122232425
    262728293031  
  • 2026年10月
    月 火 水 木 金 土 日
     1234
    567891011
    12131415161718
    19202122232425
    262728293031  
PAGE TOP ↑