Comparar data e hora em java?

Então estou com um problema, tenho um dado pra atualizar de 6 em 6 horas, gostaria de uma ajuda para fazer uma comparação de data e hora, já que o compareTo não utiliza a hora para a comparação e sim só a data, zerando o valor da hora.

Alguém poderia me ajudar neste problema?

Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

Calendar time = calendar;
calendar.add(Calendar.HOUR, 6);

int i = calendar.compareTo(time);

quem puder dar uma força, esse codigo não serve porque ele só vai comprar a data e ignorar a hora, tem algum modo de não ignorar a hora?

Engraçado que a documentação não confere com o que você disse sobre o compareTo ignorar as horas.
Tem mesmo certeza que o objeto está com as informações corretas?

Amigo FelipeXavier para comparar data e hora tudo junto você deverá fazer um formato Timestamp no date.

// Formato da data com hora
DateFormat formatodatahora = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// Convertendo para String
String datahorapedido = String.valueOf(formatodatahora.format(data));

Você pode reparara que converter em String para você visualizar como vai ficar assim é só fazer a comparação.

A API de datas do java esta sendo revista, mas sempre foi problemática. Você pode efetuar essas comparacoes utilizando after e before:

https://docs.oracle.com/javase/7/docs/api/java/util/Date.html#after(java.util.Date)
https://docs.oracle.com/javase/7/docs/api/java/util/Date.html#before(java.util.Date)

1 curtida