Diferença entre datas retorna 1 dia a menos - Ajuda!

Pessoal, preciso de uma ajuda!!

Estou utilizando GregorianCalendar, mas está me retornando a diferença errada.

     //Data do banco em yyyy-mm-dd
     Date data2 = rs2.getDate("prazo");
      
       //Data de hoje   
      GregorianCalendar calendar = new GregorianCalendar();   
      Date data = calendar.getTime();

      long dias = data2.getTime() - data.getTime();
      
      long totalDias = dias / (86400000);

      out.println(totalDias);

O resultado de totalDias é 2 e correto seria 3.

Estou diminuindo a data de 28-08-2009 - 25-08-2009.

O que estou fazendo de errado?

Marcos