Como comparar datas em Java?

Como posso comparar datas no meio em Java?

Exemplo:

data1 é 22-02-2010
data2 é 07-04-2010 hoje
data3 é 25-12-2010

A 'data3' é sempre maior que a 'data1' e a 'data2' é sempre hoje. Como posso verificar se a data de hoje's está entre a data1 e a data 3?

Solução

[Data][1] tem [antes][2] e [depois][3] métodos e podem ser [comparados uns com os outros][4] como se segue:

if(todayDate.after(historyDate) && todayDate.before(futureDate)) {
    // In between
}

Para uma comparação inclusiva:


if(!historyDate.after(todayDate) && !futureDate.before(todayDate)) {
    /* historyDate 
Comentários (5)

Use compararPara:

date1.compareTo(date2);

Comentários (4)

Compare as duas datas:

  Date today = new Date();                   
  Date myDate = new Date(today.getYear(),today.getMonth()-1,today.getDay());
  System.out.println("My Date is"+myDate);    
  System.out.println("Today Date is"+today);
  if (today.compareTo(myDate)0)
      System.out.println("Today Date is Greater than my date"); 
  else
      System.out.println("Both Dates are equal"); 
Comentários (3)