Java の日付から年、月、日などを取得し、Java のグレゴリオ暦の日付と比較したいのですが、これは可能ですか? 質問する

Java の日付から年、月、日などを取得し、Java のグレゴリオ暦の日付と比較したいのですが、これは可能ですか? 質問する

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を使用する方が適切です。方法については、この回答を参照してください。

おすすめ記事