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
おつかれさまでした。