目次
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