Java StringからLocalDate・LocalDateTimeへ変換する方法

JavaでStringからLocalDate・LocalDateTimeへ変換する方法です。

Java StringからLocalDate・LocalDateTimeへ変換する方法

ブラウザで入力された日付文字列をString型のFormで受け取り、DBへ保存するときはLocalDateやLocalDateTimeって仕様があり、ちょっと扱いにハマったので備忘録として残しておきます。

ここでは JavaでStringからLocalDate・LocalDateTimeへ変換する方法 を紹介します。


Stringをjava.time.LocalDateに変換する

LocalDate.parseとDateTimeFormatterを利用して日付文字列を変換します。

LocalDate ld = LocalDate.parse("2021/01/13", DateTimeFormatter.ofPattern("yyyy/MM/dd"));
System.out.println(ld); // 2021-01-13

日付文字列が 2021-01-13 のような形式なら、Format指定はDateTimeFormatter.ISO_DATEでも代用できます。DateTimeFormatter.ISO_DATEは"yyyy-mm-dd"を定数として宣言されています。

Stringをjava.time.LocalDateTimeに変換する

やっかいなのはLocalDateTimeですが、下記のコードで変換可能です。

LocalDateTime ldt = LocalDateTime.of(LocalDate.parse("2021/01/13", DateTimeFormatter.ofPattern("yyyy/MM/dd")), LocalTime.of(0,0));
System.out.println(ldt); // 2021-01-13T00:00

ふう、変換できた。

まとめ

JavaでStringからLocalDate・LocalDateTimeへ変換する方法を紹介しました。

相変わらずJavaでの日付の扱いはめんどくさいなーと思ってしまう。まあ、Javaに限った話じゃないかw

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。