Javaで日時のデータを扱う際、指定のフォーマット(書式)で文字列変換する方法をメモします。
Javaにおける日付や時刻のデータ生成にはいくつかの方法やAPIがありますが、
今回の記事ではDateクラス、LocalDateTimeクラスから生成した日付データをフォーマット使った例で解説します。
Dateクラス【 SimpleDateFormat 】でフォーマット
Dateクラスで生成した日付インスタンスをフォーマットする際は、
java.textパッケージのSimpleDateFormatクラスをインポートして使用する。
//現在の日付データを生成 Date now = new Date(); //書式を指定 SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); //指定の書式に日付データを渡す String simpledateformated = simpledateformat.format(now); System.out.println(simpledateformated);
コンソール出力結果
2019/01/13 09:47:41
2019/01/13 09:47:41
SimpleDateFormatのインスタンスを生成する際に日時の書式を引数に渡す。
formatメソッドへ日時データであるDateインスタンスを渡して文字列へ変換している。
※文字列からDate型へ変換する場合
SimpleDateFormatのparseメソッドを使用する
Date parsedDate = simpledateformat.parse(simpledateformated);
LocalDateTimeクラス【 DateTimeFormatter 】でフォーマット
LocalDateTimeクラスで生成した日付インスタンスをフォーマットする際は、
java.time.formatパッケージのDateTimeFormatterクラスをインポートして使用する。
//現在の日付データを生成 LocalDateTime localDateTime = LocalDateTime.now(); //書式を指定 DateTimeFormatter datetimeformatter = DateTimeFormatter.ofPattern("yyyy/MM/dd/ HH:mm:ss"); //指定の書式に日付データを渡す String datetimeformated = datetimeformatter.format(localDateTime); System.out.println(datetimeformated);
コンソール出力結果
2019/01/13 09:47:41
2019/01/13 09:47:41
LocalDateTimeクラスで現在の日時を生成する際はnowメソッドを使用する。
DateTimeFormatterクラスのofPatternメソッドを使用して書式日時のインスタンスを生成する。
DateTimeFormatterインスタンスのformatメソッドへLocalDateTimeインスタンスを渡して文字列へ変換している。