Java の Date 型として保存された Date オブジェクトが Java にあります。
グレゴリオ暦の作成日もあります。グレゴリオ暦の日付にはパラメータがないため、今日の日付 (および時刻?) のインスタンスになります。
Java の日付を使用して、Java の日付型から年、月、日、時間、分、秒を取得し、グレゴリオ暦の日付と比較できるようにしたいと考えています。
現時点では、Java の日付は long として保存されており、使用できる唯一の方法は、long をフォーマットされた日付文字列として書き込むだけのようです。年、月、日などにアクセスする方法はありますか?
getYear()
クラスの、getMonth()
などのメソッドが非推奨になっていることを知りましたDate
。日付で持っている Java Date インスタンスを使用するベスト プラクティスは何だろうかと思いましたGregorianCalendar
。
私の最終目標は、日付計算を実行して、Java の日付が今日の日付と時刻から特定の時間、分などの範囲内にあるかどうかを確認できるようにすることです。
私はまだ Java の初心者なので、少し戸惑っています。
ベストアンサー1
次のようなものを使用します:
Date date; // your date
// Choose time zone in which you want to interpret your Date
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Europe/Paris"));
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
// etc.
注意してください。月は 1 ではなく 0 から始まります。
編集: Java 8 以降では、 java.util.Calendarではなくjava.time.LocalDateを使用する方が適切です。方法については、この回答を参照してください。