読者です 読者をやめる 読者になる 読者になる

気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Java 実装で使える日付型の書き方(Date,Timestamp,Calendar)

システム日付のDate型を文字列に変換

SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date_String = ft.format(new Date());

日付の比較

compareToを使わないDate型の比較

Date型のcompareTo()の比較もあるが、戻り値が-1,0,1と直感的でないため、log型に変換 してから、比較を行う。

if (date1.getTime() > date2.getTime()) {
  return "date1はdate2より未来日"
}

Calendarクラスを使った比較

Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.set(Calendar.YEAR, 2015);
cal2.set(Calendar.YEAR, 2010);
System.out.println(cal1.before(cal2)); // false
System.out.println(cal1.equlas(cal2)); // false
System.out.println(cal1.after(cal2)); // true

Timestamp型の比較

ミリ秒を無視して良い場合、限定ですが。Date型に代入して、比較する。Timestamp型はDate型の継承クラスなので代入可能

Date date = new Timestamp();
// あとはDate型の時と同じ要領で比較

別々文字列の年月日、時間の文字列を結合して、Date型に変換する

// +演算子で結合すると新たなオブジェクトが生成されてしまうので、StringBuilderを使用。
StringBuilder sb = new StringBuilder();
sb.append("2016/04/01");
sb.append(" 12:00:00");
str_date = sb.toString();

SimpleDateFormat ft = SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = ft.parse(str_date);

参考URL

直感的で一目で分かる日付の大小比較 - 潜伏バグからのロングフリーズ
日付を比較する | Javaコード入門
java で日付の変換。文字型日付型の変換 - それマグで!