Javaプログラミングの基礎7 日付を文字にする SimpleDateFormat と日付の足し算、引き算について
今日の日付を取得して文字に変換し、データベースに値をセットしたり、データベースから検索したりといったことはよくやります。
日付型を文字列型にしたい時はこうします。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Calendar calendar = Calendar.getInstance();
Date dateObj = calendar.getTime();
String format = sdf.format(dateObj);
System.out.println("今日の日付は"+format+"です。");
上にimportの記述を入れてください。
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
SimpleDateFormatは日付をどういう文字列の形にするかを指定します。
- yyyy=年
- MM=月
- dd=日
- hh=時間
- mm=分
- ss=秒
- SSS=ミリ秒
- E=曜日
MMが月、mmが分ですが、これ間違えやすく、逆にしてしまうとセットされる時間がおかしくなるので気を付けてくださいねw
今日の日付を2022/12/21 としたい場合は
new SimpleDateFormat("yyyy/MM/dd");
とします。
日付の区切りをハイフンにし、時間までとって
2022-12-21 10:55:30 としたい場合は
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
とします。
現在日時を取得するところはここです。
Calendar calendar = Calendar.getInstance();
Date dateObj = calendar.getTime();
Calendar というクラスを使います。
その後取得した日時を日付型の dateObj という変数に現在日時をセットしています。
int week = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(week);
で数値として曜日も取得可能です。
日曜が1、月曜が2、火曜が3、水曜が4、木曜が5、金曜が6、土曜が7です。
明日の日時を取りたい時はこうします。
calendar.add(Calendar.DATE, 1);
2日前は-2とします。マイナスにする。
calendar.add(Calendar.DATE, -2);
1か月後はこうです
calendar.add(Calendar.MONTH,1);
3か月前はこうです。マイナスにする。
calendar.add(Calendar.MONTH,-3);
2年後はこう指定します。
calendar.add(Calendar.YEAR,2);
前年などもとれます。マイナスにする。
calendar.add(Calendar.YEAR,-1);
では2日前を取得して表示してみます。
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -2);
Date dateObj = calendar.getTime();
String format = sdf.format(dateObj);
System.out.println("2日前は"+format+"です。");
以上が日付を文字にする方法と、足し算、引き算でした。
如何でしたか?慣れたら簡単だと思うので、頑張ってくださいね!