[Java] 日付の計算方法(DateFormat、Date、Calendar)
公開日:
:
Java, 基本 Calendar, Date, DateFormat, Java, SimpleDateFormat, 日付, 演算, 計算
こんにちは、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
スポンサードリンク
関連記事
-
[Java] テキストファイルの読み込み方法
こんにちは、今回はテキストファイルをJavaで読む方法を紹介します。 標準で提供されているクラ
-
[Java][Eclipse] Mavenが利用可能な動的Webプロジェクトの作成
こんにちは、keiです。 今回は、Mavenが利用可能な動的Webプロジェクトの作成について解
-
[java] 文字列の一部を切り取る方法(substring)
こんにちは。 今回は文字列の一部を切り取る方法について解説します。 具体的には、String
-
[Java] 文字列の分割(split)
こんにちは。 今回は、文字列の分割について解説します。 昔はStringTokenize
-
[Java] CSVファイルの読み込み方法
こんにちは、kei0310です。 CSVファイルをJavaに取り込む方法を解説します。
-
[Java][Spring] DIする方式を細かく見てみる① @ScopeでのSingletonとPrototypeの指定
今回は@Scopeアノテーションを用いて、オブジェクトをDIする方式を選択してみます。 ●解説
-
[Java][Servlet][JSP] ServletからJSPへの転送
こんにちは。 今回は、「Servletでリクエストを受けて、JSPで表示する。」方法を解説しま
-
[Java][Servlet] EclipseでのJavaServlet作成
こんにちは、今回はEclipseを使用してJavaServletを作成します。 Eclipse
-
[Java][Spring] Spring3でDIしてみる!(アノテーション使用)
Spring3を使って、一番基本的な形のプログラムを作成してみます。 今回は、アノテーションを
-
[Java] StringBuilderの使い方(Stringを連結するクラス)
今回は、可変長文字列クラスのStringBuilderを紹介します。 固定長文字列クラスのSt