Java日期比较无法正常工作

use*_*159 0 java date

我正在使用这个获得实际日期:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
Calendar cal = Calendar.getInstance();
String today = dateFormat.format(cal.getTime());
System.out.println(today);
Run Code Online (Sandbox Code Playgroud)

它打印今天的日期:2014年4月21日

然后,我想比较这个日期是否在两个日期之间:

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
Date actualdate = sdf.parse(today);
Date date1 = sdf.parse("20.04.2014");  
Date date2 = sdf.parse("23.04.2014");
Calendar actual = Calendar.getInstance();
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
actual.setTime(actualdate);
cal1.setTime(date1);
cal2.setTime(date2);

if(actual.after(date1) && actual.before(date2)) System.out.println("Yes");
else System.out.println("No");
Run Code Online (Sandbox Code Playgroud)

它始终打印否.问题是什么?当我将date1设置为21.04.2014并使用actual.equals(date1)时,它可以工作.但是当我在它之前或之后使用它时.谢谢

Thu*_*lla 5

改为 actual.after(cal1) && actual.before(cal2)