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インスタンスを渡して文字列へ変換している。
