我使用RichFaces日历组件。我使用Rich Faces 3并且有两个日历组件。
如何以这种方式比较两个日期值,一个到这两个值可能高于另一个?
这两个值将以这种方式初始化:
Date startDate = new Date();
Date endDate = new Date();
现在我的用户可以在Rich Faces Calendar中选择DateValues,所选的值将保存在变量中。
我如何比较这两个值?
格尔茨
答案 0 :(得分:4)
你查过文件了吗?根据您的需要,compareTo()
,before()
,after()
等方法有很多可供选择的方法。
您还可以使用getTime()
方法查找自每次纪元以来的毫秒数,然后您可以操纵它们以查找时间之间的时间跨度。
http://docs.oracle.com/javase/6/docs/api/java/util/Date.html
答案 1 :(得分:3)
startDate.before(endDate);
startDate.after(endDate);
当Date
实施Comperable<Date>
时,方法compareTo
也可以正常使用。
答案 2 :(得分:2)
您可以使用compareTo
Date
方法进行比较
compareTo(Date anotherDate)
方法返回
如果参数Date等于此Date,则值为0;价值减去 如果此Date在Date参数之前,则为0;并且值更大 如果此Date在Date参数之后,则为0。
答案 3 :(得分:2)
compareTo(Date date)是Date类的一种方法,用于比较两个日期 这个方法:
如果两个日期相等,则返回值为0.
如果Date在日期参数之后,则返回值大于0。
如果Date在日期参数之前,则返回值小于0.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2012-10-31");
Date date2 = sdf.parse("2013-01-21");
if(date1.compareTo(date2)>0){
System.out.println("Date1 is after Date2");
}else if(date1.compareTo(date2)<0){
System.out.println("Date1 is before Date2");
}else if(date1.compareTo(date2)==0){
System.out.println("Date1 is same as Date2");
}else{
System.out.println("never gets executed");
}
答案 4 :(得分:1)
要比较两个日期,您应该使用compareTo()方法:
if(startDate.compareTo(endDate) > 0)
此方法