1. ホーム
  2. java

[解決済み] LocalDateTimeで日付をパース/フォーマットする方法は?(Java 8)

2022-03-24 05:26:11

質問

Java8では、新たに java.time 日付と時刻を操作するための API ( JSR 310 ).

日付と時刻を文字列で持っている(例. "2014-04-08 12:30" ). どのようにすれば LocalDateTime のインスタンスを作成できますか?

を操作し終わった後 LocalDateTime オブジェクトを作成します。次に、どのように LocalDateTime のインスタンスを、上記と同じ書式の文字列に戻すことはできますか?

解決方法は?

日付と時刻のパース

を作成するために LocalDateTime 文字列からオブジェクトを作成するには、静的な LocalDateTime.parse() メソッドを使用します。これは、文字列と DateTimeFormatter をパラメータとする。このとき DateTimeFormatter は日付/時間パターンを指定するために使用される。

String str = "1986-04-08 12:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);

日付と時刻の書式設定

フォーマットされた文字列を作成するには LocalDateTime オブジェクトを使用することができます。 format() メソッドを使用します。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.of(1986, Month.APRIL, 8, 12, 30);
String formattedDateTime = dateTime.format(formatter); // "1986-04-08 12:30"

で定数として定義されている、よく使われる日付/時刻のフォーマットがあることに注意してください。 DateTimeFormatter . 例えば 例えば DateTimeFormatter.ISO_DATE_TIME をフォーマットするために LocalDateTime のインスタンスを作成すると、文字列 "1986-04-08T12:30:00" .

parse()format() メソッドは、すべての日付/時刻関連オブジェクト(例えば LocalDate または ZonedDateTime )