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で日付と時間を効率的に扱うことができます。