Javaで日付を指定したフォーマットで取得したい
JavaのDateTimeFormatterクラスの使い方が知りたい
日付を扱っていると、日付を指定したフォーマットで取得したい場合があります。Javaには日付のフォーマットを指定できるDateTimeFormatterクラスがあります。
この記事では、そんなDateTimeFormatterクラスについて、以下の内容で解説していきます。
- DateTimeFormatterクラスとは
- DateTimeFormatterクラスの使い方
今回はそんなDateTimeFormatterクラスについて、使い方を見ていきましょう。
なお、Javaの記事については、こちらにまとめています。
JavaのDateTimeFormatterとは
DateTimeFormatterクラスは、Java8で新しく追加されたLocalDateTimeクラスなどを、指定した日付パターンに整形するためのクラスです。
以下のような形で日付パターンを指定します。
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy MM dd");
DateTimeFormatterクラスは、オブジェクト生成時にnew演算子を使用するのではなく、ofPatternメソッドで日付パターンを指定して生成する必要があります。
DateTimeFormatterクラスを使用するためには「java.time.format」パッケージを使用します。
import java.time.format.DateTimeFormatter;
java8以前の日付のフォーマット指定については、以下の記事で詳しく解説しています。
DateTimeFormatterの使い方
基本的な使い方
以下にDateTimeFormatterクラスを使用して、日付パターンを指定する方法を紹介します。
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) throws Exception { //DateTimeFormatterクラスのオブジェクトを生成する DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); //LocalDateTimeクラスを使用して日付を設定する LocalDateTime ld = LocalDateTime.parse("2017/04/01 10:00:00", dtf); System.out.println(ld.format(dtf)); } }
実行結果 2017/04/01 10:00:00
サンプルではDateTimeFormatterのオブジェクト生成時にofPatternメソッドを使用し、引数に日付のフォーマットパターンを設定しています。
次にJava8で追加されたLocalDateTimeクラスを使用して、指定した日付を設定しています。
Stringの日付をLocalDateTimeに変換する
以下にString型の日付を、Java8で追加されたLocalDateTimeクラスの日付型に、変換する方法を紹介します。
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) throws Exception { String strDate = "2017/04/10 10:00:00"; //DateTimeFormatterクラスのオブジェクトを生成する DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); //String型の日付からLocalDateTimeクラスのオブジェクトを生成する LocalDateTime ld = LocalDateTime.parse(strDate, dtf); System.out.println(ld.format(dtf).toString()); } }
実行結果 2017/04/10 10:00:00
String型の日付をLocalDateTimeクラスの日付型に変換するには、LocalDateTimeクラスのparseメソッドを使用し、引数に文字列とDateTimeFormatterクラスのオブジェクトを指定すれば、日付をLocalDateTimeのオブジェクトとして生成できます。
DateTimeを使用してフォーマットを指定する
DateTimeクラスのparseDateTimeメソッドを使用することでも、簡単にフォーマットを指定することが可能です。
parseDateTimeメソッドを使用した、日付フォーマットを指定する方法については、以下の記事で詳しく解説しています!
まとめ
ここでは、DateTimeFormatterクラスについて、意味や基本的な使い方、Stringの変換方法などをご説明しました。
Javaでは日付を扱うクラスがたくさん存在しますので、それぞれ用途や使い方をしっかりと覚えておきましょう!
もし、DateTimeFormatterクラスの使い方を忘れてしまったら、この記事を思い出してくださいね!