ホルン吹きでSEなブログ

趣味でホルン吹き、仕事でSEやってます

javaのメソッド(日付変換)

f:id:t910827:20170728195641p:plain:w300

こんにちは。
タイトルについて。

よーーーーくある、日付変換のメソッドです。
今の現場ではSQLServerOracleへのデータ移行で、こんな手順を踏んでいます。

  1. SQLServerのdatetime型を取得
  2. EntityのTimestamp型に格納
  3. ロジックでString型に変換
  4. OracleのString型へ格納


Timestamp型?なんじゃらほい。
Date型でやるものだと実装していたらコードレビューで指摘されました。
単純にDateと言っても、java.sql.Datejava.util.Dateに違いがあるからなのかな?(これは後日のネタにしよう)


っつーことでGoogle先生にお世話になり、以下のメソッドを作成しました。

	/**
	 *
	 * @param Date
	 * @return strDate
	 */
	public static String replaceDate(Timestamp Date) {

		// 確認用に現在時刻を取得
		Date = new Timestamp(System.currentTimeMillis());
		System.out.println("Timestamp:" + Date);

		// yyyyMMddHHmmssの形に変換
		String strDate = DateFormatUtils.format(Date, "yyyyMMddHHmmss");
		System.out.println("24時間表記:" + strDate);

		// HH部分を12時間表記にしたければこちら
		String strDate2 = DateFormatUtils.format(Date, "yyyyMMddhhmmss");
		System.out.println("12時間表記:" + strDate2);

		return strDate;

	}


DateFormatUtilsを使うためにはApache Commonsを導入しないといけませんのでご注意ください。(これも後日のネタにしよう)


実行結果はこんな感じになります。

f:id:t910827:20170730162647p:plain

12時間表記と24時間表記の選択ができるんですね。