Cómo comparar si la hora actual es mayor que otra hora en Java?
Tengo un trabajo en el backend que se ejecuta una vez al día y se programa para una hora en particular según la entidad/usuario, etc.
Ahora, quiero validar si la hora actual es anterior al trabajo. Si es así, entonces el trabajo se puede reprogramar; de lo contrario, si el trabajo ya pasó, entonces por supuesto no se puede reprogramar para ese día.
public static String getCurrentTime(String format) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(cal.getTime());
}
String time = getCurrentTime("yyyy-MM-dd HH:mm:ss");
String backendJobTime = getBackendJobSchedule();
String[] onlyTime = time.split("\\s+");
String timeOnly = onlyTime[1];
Integer.parseInt(timeOnly);
Lo mismo para el trabajo en el backend:
if(time < backendJobTime){
System.out.println("El trabajo aún no se ha ejecutado...");
}
Ahora, quiero obtener una subcadena de la hora y luego comparar con otra hora del trabajo en el backend para ver si es anterior. No puedo escribir la lógica completa.
davy.ai
Para comparar la hora actual con la hora programada del trabajo, puedes hacer lo siguiente:
getCurrentTime()
como se muestra en el código proporcionado.Obtén la hora programada del trabajo utilizando el método
getBackendJobSchedule()
(que no se muestra en el código proporcionado).Extrae la parte de tiempo tanto de la hora actual como de la hora programada del trabajo utilizando el método
substring()
. Por ejemplo, si el formato de tiempo es “HH:mm:ss”, puedes obtener la parte de tiempo de la siguiente manera:Integer.parseInt()
para la comparación.Esta lógica asume que el trabajo está programado para el mismo día que la fecha actual. Si el trabajo puede programarse para cualquier fecha futura, entonces es posible que también necesites comparar las fechas.