我使用这个获取实际日期:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
Calendar cal = Calendar.getInstance();
String today = dateFormat.format(cal.getTime());
System.out.println(today);
它打印今天的日期:21.04.2014
然后,我想比较这个日期是否在两个日期之间:
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");
它总是打印No。问题是什么?当我将 date1 设置为 21.04.2014 并使用actual.equals(date1) 时,它可以工作。但当我在之前或之后使用时却没有。谢谢
最佳答案
将其更改为actual.after(cal1) &&actual.before(cal2)
关于Java 日期比较无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23195335/