システム日付の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 で日付の変換。文字型日付型の変換 - それマグで!