DateTimeFormatterクラスとは
JavaのDateTimeFormatter
クラスは、日付や時間を特定の形式で表示したり、文字列から日付や時間を解析したりするためのクラスです。このクラスはjava.time.format
パッケージに含まれています。
DateTimeFormatter
は不変でスレッドセーフなため、一度作成すると再利用が可能です。また、プリセットのフォーマットを提供しており、ISO_LOCAL_DATE_TIME
やISO_LOCAL_DATE
など、標準的な日付/時間フォーマットを簡単に使用することができます。
さらに、カスタムの日付/時間フォーマットを作成するためのビルダーも提供しています。これにより、アプリケーションの特定の要件に合わせて日付と時間の表示をカスタマイズすることが可能になります。
次のセクションでは、DateTimeFormatter
の基本的な使い方について詳しく説明します。
DateTimeFormatterの基本的な使い方
JavaのDateTimeFormatter
クラスを使用すると、日付や時間を特定の形式で表示したり、文字列から日付や時間を解析したりすることができます。以下にその基本的な使い方を示します。
プリセットのフォーマットを使用する
JavaのDateTimeFormatter
クラスは、標準的な日付/時間フォーマットをプリセットとして提供しています。これらのプリセットを使用すると、簡単に日付や時間をフォーマットすることができます。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
String formattedNow = now.format(formatter);
System.out.println(formattedNow);
}
}
このコードは、現在の日付と時間をISO_LOCAL_DATE_TIME
フォーマット(yyyy-MM-dd'T'HH:mm:ss
)で表示します。
カスタムのフォーマットを作成する
DateTimeFormatter
クラスを使用すると、カスタムの日付/時間フォーマットを作成することも可能です。以下にその方法を示します。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
String formattedNow = now.format(formatter);
System.out.println(formattedNow);
}
}
このコードは、現在の日付と時間をカスタムフォーマット(yyyy/MM/dd HH:mm:ss
)で表示します。
次のセクションでは、日付と時間のフォーマットについて詳しく説明します。
日付と時間のフォーマット
JavaのDateTimeFormatter
クラスを使用すると、日付と時間を特定の形式で表示することができます。以下にその方法を示します。
プリセットのフォーマットを使用する
DateTimeFormatter
クラスは、標準的な日付/時間フォーマットをプリセットとして提供しています。これらのプリセットを使用すると、簡単に日付や時間をフォーマットすることができます。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
String formattedNow = now.format(formatter);
System.out.println(formattedNow);
}
}
このコードは、現在の日付と時間をISO_LOCAL_DATE_TIME
フォーマット(yyyy-MM-dd'T'HH:mm:ss
)で表示します。
カスタムのフォーマットを作成する
DateTimeFormatter
クラスを使用すると、カスタムの日付/時間フォーマットを作成することも可能です。以下にその方法を示します。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
String formattedNow = now.format(formatter);
System.out.println(formattedNow);
}
}
このコードは、現在の日付と時間をカスタムフォーマット(yyyy/MM/dd HH:mm:ss
)で表示します。
次のセクションでは、Stringの日付をLocalDateTimeに変換する方法について詳しく説明します。
Stringの日付をLocalDateTimeに変換する
JavaのDateTimeFormatter
クラスを使用すると、文字列形式の日付をLocalDateTime
オブジェクトに変換することができます。以下にその方法を示します。
文字列からLocalDateTimeへの変換
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String dateStr = "2024/04/03 19:35:25";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(dateStr, formatter);
System.out.println(dateTime);
}
}
このコードは、文字列形式の日付("2024/04/03 19:35:25"
)をLocalDateTime
オブジェクトに変換します。変換に使用するフォーマットは"yyyy/MM/dd HH:mm:ss"
です。
次のセクションでは、DateTimeFormatter
を使用して特定のフォーマットを指定する方法について詳しく説明します。
DateTimeを使用してフォーマットを指定する
JavaのDateTimeFormatter
クラスを使用すると、LocalDateTime
オブジェクトを特定の形式で表示することができます。以下にその方法を示します。
LocalDateTimeから文字列への変換
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
String formattedNow = now.format(formatter);
System.out.println(formattedNow);
}
}
このコードは、現在の日付と時間をカスタムフォーマット(yyyy/MM/dd HH:mm:ss
)で表示します。
以上がDateTimeFormatter
クラスの基本的な使い方となります。これらの知識を活用して、Javaで日付と時間を効率的に扱うことができます。