0
2

More than 1 year has passed since last update.

Calendarクラスで、今日、明日、明後日、昨日、一昨日、来年、昨年の日付を取得する

Posted at

目次

 1.DateクラスとCalendarクラスのちがい
 2.今日、明日、明後日、昨日、一昨日、来年、昨年の日付を取得する

1. DateクラスとCalendarクラスのちがい

Dateクラス

簡単に日付を表示したい場合などに使用。
現在は非推奨のため基本的にCalendarクラスを使用するのが望ましい。

package jp.co.study.sample;

import java.util.Date;

public class Qiita {
	public static void main (String args[]) {
		
		Date date = new Date();
		System.out.println(date.toString());
	}
}

出力結果は、Thu Jan 19 19:07:48 JST 2023

下記のようにすると、フォーマットを指定できる。

package jp.co.study.sample;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class Qiita {
	public static void main (String args[]) {
		
		Date date = new Date();
		
		// フォーマットの設定
		String strformat1 = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(date);
		System.out.println(strformat1);
		String strDateDormat2 = new SimpleDateFormat("yyyy/M/d",Locale.US).format(date);
		System.out.println(strDateDormat2);
		String strDateDormat3 = new SimpleDateFormat("yy/M/d",Locale.US).format(date);
		System.out.println(strDateDormat3);
		// ハイフンver.
		String strDateDormat4 = new SimpleDateFormat("yy-M-d",Locale.US).format(date);
		System.out.println(strDateDormat4);
	}
}

出力結果は、上から 2023/01/19、2023/1/19、23/1/19、23-1-19

Calendarクラス

日付を参照したり計算することができる。

package jp.co.study.sample;

import java.util.Calendar;

public class Qiita {
	public static void main (String args[]) {
		
		Calendar cal = Calendar.getInstance();
		System.out.println(cal.getTime());
	}
}

出力結果は、Thu Jan 19 19:35:02 JST 2023

下記のようにすると、フォーマットを指定できる。

package jp.co.study.sample;

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Qiita {
	public static void main (String args[]) {
		
		Calendar cal = Calendar.getInstance();
		
		// フォーマットの設定
		SimpleDateFormat format1 = new SimpleDateFormat("yyyy/MM/dd");
		System.out.println(format1.format(cal.getTime()));
		// フォーマットの変更
		format1.applyPattern("y/M/d");
		System.out.println(format1.format(cal.getTime()));
		format1.applyPattern("yy/M/d");
		System.out.println(format1.format(cal.getTime()));
		format1.applyPattern("yy-M-d");
		System.out.println(format1.format(cal.getTime()));
	}
}

出力結果は、上から 2023/01/19、2023/1/19、23/1/19、23-1-19

年、月、日付を出力する方法。

package jp.co.study.sample;

import java.util.Calendar;

public class Qiita {
	public static void main (String args[]) {
		
		Calendar cal = Calendar.getInstance();
		
		// 年、月、日付出力
		System.out.println(cal.get(Calendar.YEAR));
		System.out.println(cal.get(Calendar.MONTH) + 1);
		System.out.println(cal.get(Calendar.DATE));
	}
}

getの引数には定数(下記参照)を指定する。

MONTHは定数が出力され、1月の場合は0が出力されるため +1。
出力結果は、上から 2023、1、19

2. 今日、明日、明後日、昨日、一昨日、来年、昨年の日付を取得する

今日、 明日、 明後日、 昨日、 一昨日

package jp.co.study.sample;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class Qiita {
	public static void main (String args[]) {
		
		// 今日
		Date nowDate = new Date();
		String today = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(nowDate);
		System.out.println(today.toString());
		
		Calendar cal = Calendar.getInstance();
		
		// 明日
		cal.setTime(nowDate);
		cal.add(Calendar.DATE, 1);
		String tomorrow = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(tomorrow);
		
        // 明後日
		cal.setTime(nowDate);
		cal.add(Calendar.DATE, 2);
		String daTomorrow = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(daTomorrow);
		
        // 昨日
		cal.setTime(nowDate);
		cal.add(Calendar.DATE, -1);
		String yesterday = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(yesterday);
		
        // 一昨日
		cal.setTime(nowDate);
		cal.add(Calendar.DATE, -2);
		String dbYesterday = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(dbYesterday);
	}
}

出力結果は、上から 2023/01/19、2023/01/20、2023/01/21、2023/01/18、2023/01/17

来年、 昨年

package jp.co.study.sample;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class Qiita {
	public static void main (String args[]) {
		
		Date nowDate = new Date();
		Calendar cal = Calendar.getInstance();
		
		// 来年
		cal.setTime(nowDate);
		cal.add(Calendar.YEAR, 1);
		String nextYear = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(nextYear);
		// 昨年
		cal.setTime(nowDate);
		cal.add(Calendar.YEAR, -1);
		String lastYear = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(lastYear);
	}
}

出力結果は、上から 2024/01/19、2022/01/19

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2