【Java】String型からLocalDateTime型へ変換する方法(LocalDateTime.parse()メソッド)について解説
String型の日付をLocalDateTimeクラスの日付型に変換するには、
LocalDateTimeクラスのparseメソッドを使用します。
そして、引数に文字列とDateTimeFormatterクラスのオブジェクトを指定すれば、
日付をLocalDateTimeのオブジェクトとして生成できます。
LocalDateTime.parse()メソッドの使い方
宣言の仕方
まず、LocalDateTimeをインポートします。
1 |
import java.time.LocalDateTime; |
LocalDateTime.parse()を使ってLocalDateTime型へ変換します。
1 |
LocalDateTime date = LocalDateTime.parse("2020-12-30T19:34:50.63"); |
するとこのようなコードになります。
例
1 2 3 4 5 6 7 |
public class Main { public static void main(String[] args)throws Exception { LocalDateTime date = LocalDateTime.parse("2020-12-30T19:34:50.63"); System.out.println("LocalDateTime : "+ date); } } |
出力結果
LocalDateTime : 2020-12-30T19:34:50.630
これで、LocalDateTime型へ変換することができました。
しかし、変換する前と同じ値である為、本当に変換されたのか?と疑問を抱く方もいらっしゃると思います。
ですので一度確認として、変数dateに文字列を格納してみましょう。
例
1 2 3 4 5 6 7 8 9 10 11 |
import java.time.LocalDateTime; public class Main { public static void main(String[] args)throws Exception { LocalDateTime date = LocalDateTime.parse("2018-12-30T19:34:50.63"); System.out.println("LocalDateTime : "+ date); date = "AAAA"; } } |
出力結果
Main.java:11: error: incompatible types: String cannot be converted to LocalDateTime
dateはLocalDateTime型ですので、文字列を格納するとエラーになります。
つまり、LocalDateTime.parse()メソッドを使うことで、String型からLocalDateTime型へ変換できたことになります。
コードを書いて実行してみる
実際にコードを書いて実行してみましょう。
先ほどは「2020-12-30T19:34:50.63」と表示されましたが、日付としては分かりにくい表示となっていました。
ですので、次はDateTimeFormatterを使って日付のフォーマットを設定して分かりやすい日付の表示をしてみましょう。
使い方はDateTimeFormatterをインポートし、ofPattern()メソッドを使ってフォーマットを設定します。
それでは、コードを見てみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) throws Exception { String date = "2020/06/17 10:00:00"; //DateTimeFormatterクラスのオブジェクトを生成 DateTimeFormatter dtFt = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); //String型の日付からLocalDateTimeクラスのオブジェクトを生成 LocalDateTime datePar = LocalDateTime.parse(date, dtFt); System.out.println(datePar.format(dtFt).toString()); } } |
出力結果
2020/06/17 10:00:00
「2020-12-30T19:34:50.63」ではなく「2020/06/17 10:00:00」という分かりやすい日付表示になりました。
なぜなら、DateTimeFormatterをインポートすることで、ofPattern()メソッドの使用が可能になり、
変換した日付を表示するフォーマットを設定できるようになったからです。
ですので、String型からLocalDateTimeへ変換する時は、DateTimeFormatterをインポートして
分かりやすい日付けに直して表示することをおすすめします。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。