【JavaGold勉強記#26】DateTimeFormatter編

JavaGold資格取得に向けた勉強記第26回は「DateTimeFormatter」についてです。

JavaのDateTimeFormatterは、日付や時刻のフォーマットおよびパースを行うためのクラスです。

DateTimeFormatterは、日付や時刻を文字列に変換したり、文字列を日付や時刻に変換したりする際に使用されます。

この記事では、JavaのDateTimeFormatterについて詳しく説明します。

DateTimeFormatterクラス

Javaの DateTimeFormatter クラスは、日付と時刻を指定したフォーマットで表示したり、文字列から日付や時刻をパースしたりするための強力なツールです。

このクラスのインスタンスを生成するには、次の3つの方法があります。

  1. 事前に定義された定数を使用する
  2. パターン文字を使用する
  3. ローカライズされたスタイルを使用する

事前に定義された定数を使用する

日付のフォーマットには、ISO8601という国際規格があります。この規格に則って日付・時刻のフォーマットを行うには、DateTimeFormatterクラスにあらかじめ定義されている定数を利用します。

BASIC_ISO_DATE

  • パターン: "yyyyMMdd"
  • 例: 20220131

ISO_LOCAL_DATE

  • パターン: "yyyy-MM-dd"
  • 例: 2022-01-31

ISO_LOCAL_TIME

  • パターン: "HH:mm:ss"
  • 例: 12:30:45

ISO_LOCAL_DATE_TIME

  • パターン: "yyyy-MM-dd'T'HH:mm:ss"
  • 例: 2022-01-31T12:30:45

これらの定数は、次のコードのように使用できます。この例では、ISO_DATEという定数を使って、static領域にあるDateTimeFormatterのインスタンスへの参照を取得して、現在日付をもったLocalDateのインスタンスを渡してフォーマットし、コンソールに表示しています。

DateTimeFormatter isoDateFormatter = DateTimeFormatter.ISO_DATE;
System.out.println(isoDateFormatter.format(LocalDate.now()));

DateTimeFormatterクラスのformatメソッドは、LocalDateやLocalDateTimeなどのインスタンスへの参照を受け取り、書式を適用した文字列に変換します。

最後に

JavaのDateTimeFormatterは、日付や時刻のフォーマットおよびパースを行うための便利なクラスです。

日付や時刻の文字列を特定の形式にフォーマットしたり、逆に文字列から日付や時刻を解析したりする際に役立ちます。

適切なパターン文字列と必要に応じたロケールを指定することで、多様なフォーマット要件を満たすことができます。