Tengo dos objetos de DateTime , que necesitan encontrar la duración de su diferencia ,
Tengo el siguiente código pero no estoy seguro de cómo continuar para obtener los resultados esperados de la siguiente manera:
Ejemplo
11/03/14 09:30:58
11/03/14 09:33:43
elapsed time is 02 minutes and 45 seconds
-----------------------------------------------------
11/03/14 09:30:58
11/03/15 09:30:58
elapsed time is a day
-----------------------------------------------------
11/03/14 09:30:58
11/03/16 09:30:58
elapsed time is two days
-----------------------------------------------------
11/03/14 09:30:58
11/03/16 09:35:58
elapsed time is two days and 05 mintues
Código
String dateStart = "11/03/14 09:29:58";
String dateStop = "11/03/14 09:33:43";
Custom date format
SimpleDateFormat format = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
} catch (ParseException e) {
e.printStackTrace();
}
// Get msec from each, and subtract.
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000);
System.out.println("Time in seconds: " + diffSeconds + " seconds.");
System.out.println("Time in minutes: " + diffMinutes + " minutes.");
System.out.println("Time in hours: " + diffHours + " hours.");
java
date-arithmetic
J888
fuente
fuente
Respuestas:
prueba lo siguiente
fuente
La conversión de diferencia de fecha podría manejarse de una mejor manera usando la clase incorporada de Java, TimeUnit . Proporciona métodos de utilidad para hacer eso:
fuente
Usar la biblioteca Joda-Time
Joda Time tiene un concepto de intervalo de tiempo:
Un ejemplo más de diferencia de fecha
Un enlace más
o con Java-8 (que integró conceptos de Joda-Time)
fuente
Así es como el problema se puede resolver en Java 8 al igual que la respuesta de shamimz.
Fuente: http://docs.oracle.com/javase/tutorial/datetime/iso/period.html
El código produce una salida similar a la siguiente:
Tenemos que usar LocalDateTime http://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html para obtener diferencias de horas, minutos y segundos.
fuente
fuente
Puedes crear un método como
Este método devolverá el número de días entre los 2 días.
fuente
Como escribe Michael Borgwardt en su respuesta aquí :
fuente
En Java 8, se puede hacer de
DateTimeFormatter
,Duration
yLocalDateTime
. Aquí hay un ejemplo:fuente
Me funcionó, puedo intentarlo con esto, espero que sea de ayuda. Avíseme si tiene alguna inquietud.
fuente
Este es el código:
y la salida es:
fuente
con referencia a la actualización de respuesta de shamim, aquí hay un método que realiza la tarea sin usar ninguna biblioteca de terceros. Simplemente copie el método y use
fuente
Resolví el problema similar usando un método simple recientemente.
Y como era de esperar se imprime:
7 days ago
.fuente
Este es un programa que escribí, que obtiene el número de días entre 2 fechas (aquí no hay tiempo).
http://pastebin.com/HRsjTtUf
fuente
Cómo calcular la diferencia entre dos fechas en Java
fuente