1. 概要

この短いチュートリアルでは、Javaの特定の日付からを抽出する方法を見ていきます。 ]。

従来のjava.util.Date クラスを使用して、またJava 8の新しい日時ライブラリを使用して、これらの値を抽出する方法を見ていきます。

Java 8では、多くの正当な理由のために、まったく新しい日付と時刻のライブラリが導入されました。 他の利点に加えて、 新しいライブラリは、年、月、日などの抽出などの操作に適したAPIを提供します。 与えられた日付から。

また、新しい日時ライブラリに関するより詳細な記事をお探しの場合は、こちらをご覧ください。

2. Java7の使用

特定のjava.util.Dateに対して、 Year Month Dayなどの個々のフィールドを抽出します。 最初に行う必要があるのは、それをCalendarインスタンスに変換することです。

Date date = // the date instance
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

Calendar インスタンスを取得したら、その get メソッドを直接呼び出して、抽出する特定のフィールドを指定できます。

Calendar にある定数を使用して、特定のフィールドを抽出できます。

2.1. 年を取得

year、を抽出するには、引数として Calendar.YEAR を渡すことにより、getを呼び出すことができます。

calendar.get(Calendar.YEAR);

2.2. 月を取得

同様に、月、を抽出するには、引数として Calendar.MONTH を渡すことにより、getを呼び出すことができます。

calendar.get(Calendar.MONTH);

カレンダーの月はゼロインデックスであることに注意してください。 1月の場合、このメソッドは0を返します。

2.3. 日を取得

最後に、 day、を抽出するために、 Calendar.DAY_OF_MONTH を引数として渡して、getを呼び出します。

calendar.get(Calendar.DAY_OF_MONTH);

3. Java8の使用

新しいjava.timeパッケージには、Dateを表すために使用できるいくつかのクラスが含まれています。

各クラスは、 Date に加えて、格納する追加情報によって異なります。

基本的なLocalDateには日付情報のみが含まれ、LocalDateTimeには日付と時刻の情報が含まれます。

同様に、ResetDateTimeZonedDateTimeなどのより高度なクラスには、それぞれUTCからのオフセットに関する追加情報とタイムゾーンに関する情報が含まれています。

いずれの場合も、これらのクラスはすべて、年、月、および日付の情報を抽出するための直接メソッドをサポートしています。

これらのメソッドを調べて、 aLocalDateインスタンス名localDateから情報を抽出してみましょう。

3.1. 年を取得

Yearを抽出するために、LocalDateは単にgetYearメソッドを提供します。

localDate.getYear();

3.2. 月を取得

同様に、 Monthを抽出するには、 getMonthValueAPIを使用します。

localDate.getMonthValue();

Calendar とは異なり、LocalDateの月は1からインデックス付けされます。 1月の場合、これは1を返します。

3.3. 日を取得

最後に、 Day、を抽出するために、getDayOfMonthメソッドがあります。

localDate.getDayOfMonth();

4. 結論

このクイックチュートリアルでは、JavaのDateからYear Month Dayの整数値を抽出する方法について説明しました。 。

古いDateクラスとCalendarクラス、およびJava8の新しい日時ライブラリを使用してこれらの値を抽出する方法を示しました。

このチュートリアルで使用されるスニペットの完全なソースコードは、Githubから入手できます。