我需要在Java中比较两个日期。我正在使用这样的代码:
Date questionDate = question.getStartDate(); Date today = new Date(); if(today.equals(questionDate)){ System.out.println("Both are equals"); }
这是行不通的。变量的内容如下:
questionDate
2010-06-30 00:31:40.0
today
Wed Jun 30 01:41:25 IST 2010
我该如何解决?
日期相等性取决于两个等于毫秒的日期。使用创建新的Date对象new Date()将永远不会等于过去创建的日期。Joda Time的API简化了日期的处理。但是,仅使用Java的SDK:
new Date()
if (removeTime(questionDate).equals(removeTime(today)) ... public Date removeTime(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); return cal.getTime(); }