Java で日付から年を取得する

Rupam Yadav 2023年10月12日
  1. Java で DateLocalDate を使って現在の年を取得する
  2. Java で DateSimpleDateFormat を使用して現在の年を取得する
  3. Date.getYear()Calendar を用いて現在の年を取得する
Java で日付から年を取得する

このチュートリアルでは、Java で年を取得する方法を説明します。java.util.Date クラスを使って現在の日付を取得し、いくつかのメソッドを使って現在の年を抽出します。

Java で DateLocalDate を使って現在の年を取得する

java.util.Date には、1900 年から減算した値を返す getyear() メソッドがあります。しかし、このメソッドはずっと前に Java では非推奨になりました。代わりに、java.time で利用できる LocalDate クラスを、日時操作を行うための好ましいメソッドとして使うことができます。

date.toInstant() を使って date オブジェクトを LocalDate オブジェクトに変換します。次に、atZone() を呼び出して、ZoneId.systemDefault() を使用してシステムのデフォルトのタイムゾーンを指定し、その値を atZone のコンストラクターに渡します。最後に、toLocalDate() を呼び出して、インスタント値を LocalDate に変換します。

これで LocalDate オブジェクト getLocalDate ができたので、getLocalDate.getYear() を使って年を取得します。

import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;

public class DateGetYear {
  public static void main(String[] args) {
    Date date = new Date();

    ZoneId timeZone = ZoneId.systemDefault();
    LocalDate getLocalDate = date.toInstant().atZone(timeZone).toLocalDate();
    System.out.println(getLocalDate.getYear());
  }
}

出力:

2021

Java で DateSimpleDateFormat を使用して現在の年を取得する

Date は、時刻が 00:00:00 に設定されている日付と時刻の両方を返します。年だけを取得するには、SimpleDateFormat を用いて date をフォーマットします。SimpleDateFormat オブジェクトを作成し、yyyy というフォーマットを渡します。format()を呼び出し、引数に date を用います。getYearFormat.format(date) は出力のように文字列で結果を返します。

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateGetYear {
  public static void main(String[] args) {
    Date date = new Date();

    SimpleDateFormat getYearFormat = new SimpleDateFormat("yyyy");
    String currentYear = getYearFormat.format(date);
    System.out.println(currentYear);
  }
}
2021

Date.getYear()Calendar を用いて現在の年を取得する

最後のメソッドは java.util.Date のいくつかのメソッドを置き換えると言われている Calendar クラスを利用します。Date オブジェクトを作成し、calendar.getInstance() を用いて calendar のインスタンスを取得します。その後、calendar.setTime() メソッドを呼び出して、カレンダーの時刻を date に設定します。

年を取得するには、引数に渡されたフィールドの値を返す calendar.get() を呼び出します。Calendaer.YEAR を渡して、年を int として取得します。

import java.util.Calendar;
import java.util.Date;

public class DateGetYear {
  public static void main(String[] args) {
    Date date = new Date();
    Calendar calendar = Calendar.getInstance();

    calendar.setTime(date);
    int dateYear = calendar.get(Calendar.YEAR);
    System.out.println(dateYear);
  }
}

出力:

2021
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java DateTime