初心者が犯しやすい日付エラー
1244 ワード
今日のデバッグコードは、初心者が犯しやすいエラーに遭遇しました.demoは以下の通り
日付タイプをbefore、afterメソッドで比較するときは、パラメータタイプとオブジェクトタイプが一致していることに注意してください.そうしないとfalseになります.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
long time_1 = sdf.parse("2012-01-01 00:00:00").getTime();
long time_2 = sdf.parse("2012-03-01 00:00:00").getTime();
c1.setTimeInMillis(time_1);
c2.setTimeInMillis(time_2);
System.out.println(c1.before(c2)); //result true
System.out.println(c1.getTime().before(c2.getTime())); //result true
System.out.println(c1.before(c2.getTime())); //result false
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
日付タイプをbefore、afterメソッドで比較するときは、パラメータタイプとオブジェクトタイプが一致していることに注意してください.そうしないとfalseになります.