Java 日期比较无法正常工作

标签 java date

我使用这个获取实际日期:

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/

相关文章:

java - 应用程序服务器作业还是数据库作业?

java - gwt 是否有单个日期时间选择器组件?

javascript - Cordova - jquery mobile img 路径

java - 如何使用迭代器以编程方式绘制 N 个元素的 block

java - 基于内容的网页语言检测

php - 不同时间段的单独组结果

objective-c - ALAssetPropertyDate 返回 "wrong"日期

mysql - 对包含时间的 varchar 字段进行数字排序

java - android中的编辑文本可以允许用户不编辑其第一行吗

Java:在 new File() 中传递字符串变量