MySQLからSELECTしてきた日付データ(DateTime型)を、
「yyyy年MM月dd日 hh時mm分ss秒」のフォーマットで表示する方法です。
目次
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 必要なimport文 import java.util.Date; import java.text.SimpleDateForma; // DBからデータを取得 ResultSet rs = stmt.executeQuery("SELECT * FROM TableName;"); // DateTime型のカラムから日時データを取得 Date datetime = rs.getTimestamp("datetime_column"); // 「yyyy年MM月dd日 hh時mm分ss秒」形式のフォーマットを定義 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh時mm分ss秒"); // 定義したフォーマットで表示 System.out.println(sdf.format(datetime)); |
説明
Date型変数への格納
取得した日付データは、Date型の変数に格納します。
SimpleDateFormatで日付のフォーマット変換をする際、
Date型のオブジェクトを渡す必要があるためです。
なぜDate型に格納できるのか?
それはResultSetのgetTimestampメソッで返すTimestampオブジェクトが、
java.util.Dateクラスのサブクラス(薄いラッパークラス)になっているからです。
DateとTimestampの違い
・Dateは秒まで保持できる。
・Timestampはナノ秒まで保持できる。
実際、Timestampはナノ秒を保持できるようにDateクラスを拡張したものです。
参考
MySQLのタイムスタンプからJavaへの日付変換
https://codeday.me/jp/qa/20190503/767629.html
Oracle-docs(Timestampクラス)
https://docs.oracle.com/javase/jp/8/docs/api/java/sql/Timestamp.html
コメント