(Javaにおいて)よく、日付関係の変換、比較について、聞かれるし、
自分自身も迷うことがあるので、まとめておきます。
(きょう、野暮用で、日付関係のクラスを使うことがあったので)
どっちの日付のほうが、前か、後かを確認する
Date.after(Date when);
この Date オブジェクトの表す時点が when オブジェクトの表わす
時点より遅い場合だけ true、そうでない場合は false
Date.before(Date when);
(afterの反対)
compareToで比較してもいい。
Dateでなく、GregorianCalendarでやってもいい。
日付を数字でだす。
Dateに入っている値の、年、月、日など出したい場合。
Date.getMonth()などは、推奨されていない。
GregorianCalendar.get(Calendar.YEAR);
の形で取得する
設定するときはsetになる
MONTHについて、返り値に1を足したのが、本当の月の値
現在時刻の取得
new GregorianCalendar();で現在時刻が入ってくる。
(new Date()でも)なお、ミリ秒をlongの形でいいなら
System.currentTimeMillis()でもOK
DateとGregorianCalendarの変換
GregorianCalendar.getTime()で、GregorianCalendarからDateを取得できる
new GregorianCalendar(Date.getTime())でDateからGregorianCalendarを取得できる
注意
GregorianCalendarのクラスでは、上位のクラスCalendarのメソッドも使える。
Calendarクラスに、使いやすいメソッドがあるので、そっちもチェック。
自分自身も迷うことがあるので、まとめておきます。
(きょう、野暮用で、日付関係のクラスを使うことがあったので)
どっちの日付のほうが、前か、後かを確認する
Date.after(Date when);
この Date オブジェクトの表す時点が when オブジェクトの表わす
時点より遅い場合だけ true、そうでない場合は false
Date.before(Date when);
(afterの反対)
compareToで比較してもいい。
Dateでなく、GregorianCalendarでやってもいい。
日付を数字でだす。
Dateに入っている値の、年、月、日など出したい場合。
Date.getMonth()などは、推奨されていない。
GregorianCalendar.get(Calendar.YEAR);
の形で取得する
設定するときはsetになる
MONTHについて、返り値に1を足したのが、本当の月の値
現在時刻の取得
new GregorianCalendar();で現在時刻が入ってくる。
(new Date()でも)なお、ミリ秒をlongの形でいいなら
System.currentTimeMillis()でもOK
DateとGregorianCalendarの変換
GregorianCalendar.getTime()で、GregorianCalendarからDateを取得できる
new GregorianCalendar(Date.getTime())でDateからGregorianCalendarを取得できる
注意
GregorianCalendarのクラスでは、上位のクラスCalendarのメソッドも使える。
Calendarクラスに、使いやすいメソッドがあるので、そっちもチェック。