Ola pessoa, estou com problema de comparar horas em java, é o seguinte
tenho hora inicial e hora final quere vereficar se a hora do sistema esta entre essas horas
Obs( ja tentei usar after e before , porem ele compara a data tambem e eu quero compara somente a hora)
Deste jah obrigado
Só completando, compara a hora e o minuto
tente algo assim:
convertDate("hhmmss", Date dtSistema)
public static String convertDate(String format, Date dtConsulta) {
try {
SimpleDateFormat formatter = new SimpleDateFormat(format, new Locale("pt", "BR"));
return formatter.format(dtConsulta);
} catch (Exception e) {
return null;
}
}
No Java padrão não tem comparação só de horário, a data vem junto.
Eu recomendaria usar o LocalTime do Joda Time se quiser manter um bom modelo de tempo.
Pessoal obrigado por respoderem, porem resolvi de outra forma, como meu objetivo era compara somente as horas , eu usei um date com GregorianCalendar, assim igualei o dia/mes/ano de todas as datas que eu iria compara e usei o after e before
Ex:
Date horaInicial = this.getPrivilegiosRegra()[diaDaSemana.ordinal()].getHoraInicial();
Date horaFinal = this.getPrivilegiosRegra()[diaDaSemana.ordinal()].getHoraFinal();
GregorianCalendar horaAtualAuxiliar = new GregorianCalendar();
GregorianCalendar horaInicialAuxiliar = new GregorianCalendar();
GregorianCalendar horaFinalAuxiliar = new GregorianCalendar();
horaAtualAuxiliar.setTime(horaAtual);
horaInicialAuxiliar.setTime(horaInicial);
horaFinalAuxiliar.setTime(horaFinal);
// Igualamos a Data para que a comparação da hora seja independete do dia/mes/ano, mas sim
// hora permitida referente ao dia da semana
horaInicialAuxiliar.set(Calendar.YEAR,horaAtualAuxiliar.get(Calendar.YEAR));
horaInicialAuxiliar.set(Calendar.MONTH, horaAtualAuxiliar.get(Calendar.MONTH));
horaInicialAuxiliar.set(Calendar.DAY_OF_MONTH, horaAtualAuxiliar.get(Calendar.DAY_OF_MONTH));
horaFinalAuxiliar.set(Calendar.YEAR, horaAtualAuxiliar.get(Calendar.YEAR));
horaFinalAuxiliar.set(Calendar.MONTH, horaAtualAuxiliar.get(Calendar.MONTH));
horaFinalAuxiliar.set(Calendar.DAY_OF_MONTH, horaAtualAuxiliar.get(Calendar.DAY_OF_MONTH));
/////////////////////////////////////////////////////////////////////////////////////
if (horaAtual.after(horaInicialAuxiliar.getTime()) && horaAtual.before(horaFinalAuxiliar.getTime())) {
return true;
}
return false;
}
e funcionou corretamente
Obrigado a todos