-2

我使用 RichFaces 日历组件。我使用 Rich Faces 3 并且有两个日历组件。

如何以这种方式比较两个日期值,这两个值中的一个值可能高于另一个值?

这两个值将以这种方式初始化:

Date startDate = new Date();

Date endDate = new Date();

现在我的用户可以在 Rich Faces 日历中选择 DateValues,所选值将保存在变量中。

我如何比较这两个值?

格雷茨

4

5 回答 5

4

你检查过文档吗?根据您的需要,有很多用于比较的方法compareTo(),等等。您还可以使用该方法来查找自每次纪元以来的毫秒数,然后您可以操作这些以查找时间之间的时间跨度。before()after()getTime()

http://docs.oracle.com/javase/6/docs/api/java/util/Date.html

于 2013-08-16T08:24:27.073 回答
3

你可以使用afterbefore方法

startDate.before(endDate);
startDate.after(endDate);

作为Dateimplements Comperable<Date>,方法compareTo也可以正常工作。

于 2013-08-16T08:24:18.823 回答
2

您可以使用compareTo方法Date进行比较

compareTo(Date anotherDate)方法返回_

如果参数 Date 等于此 Date,则值为 0;如果此 Date 在 Date 参数之前,则值小于 0;如果此 Date 在 Date 参数之后,则值大于 0。

于 2013-08-16T08:24:31.610 回答
2

compareTo(Date date) 是 Date 类的一个方法,它比较两个日期这个方法:

  • 如果两个日期相等,则返回值为 0。

  • 如果 Date 在 date 参数之后,则返回值大于 0 。

  • 如果 Date 在 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");
                }
    
于 2013-08-16T08:32:33.533 回答
1

要比较两个日期,您应该使用 compareTo() 方法:

if(startDate.compareTo(endDate) > 0)

这种方法

  1. 如果日期相等则返回 0
  2. 如果日期在日期参数之后,则返回正值
  3. 如果日期在日期参数之前,则返回负值
于 2013-08-16T08:31:23.937 回答