1. ホーム

[解決済み】JavaのDateから年、月、日などを取得し、グレゴリオ暦の日付と比較したい。これは可能ですか?

2022-04-03 08:57:23

質問

JavaでDateオブジェクトをJavaのDate型として保存しています。

また、グレゴリオ暦で作成した日付も持っています。グレゴリオ暦の日付はパラメータを持たないので、今日の日付(と時刻)のインスタンスになります。

javaの日付型で、年、月、日、時、分、秒を取得し、gregoriancalendarの日付と比較できるようにしたいのです。

現時点では、Javaの日付はlongとして保存され、利用可能な唯一のメソッドは、フォーマットされた日付文字列としてlongを書き込むだけのようです。年、月、日などにアクセスする方法はありますか?

を見たのですが getYear() , getMonth() のメソッドなど。 Date クラスは非推奨となりました。私は、私が持っているJavaのDateインスタンスを GregorianCalendar の日付が表示されます。

私の最終目標は、Javaの日付が今日の日付と時刻から何時間、何分などの範囲内にあるかをチェックできるように、日付計算を行うことです。

私はまだJavaの初心者なので、ちょっと戸惑っています。

どのように解決するのですか?

のようなものを使ってください。

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.time.LocalDate よりも、むしろ java.util.Calendar(ジャバユーティリティカレンダー . 参照 本解 は、その方法について説明します。