初心者が犯しやすい日付エラー

1244 ワード

今日のデバッグコードは、初心者が犯しやすいエラーに遭遇しました.demoは以下の通り
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になります.