Tenho dois objetos de DateTime , que precisam encontrar a duração de sua diferença ,
Tenho o seguinte código, mas não tenho certeza de como continuá-lo para obter os resultados esperados da seguinte forma:
Exemplo
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
fonte
fonte
Respostas:
tente o seguinte
fonte
A conversão de diferença de data poderia ser tratada de uma maneira melhor usando a classe integrada do Java, TimeUnit . Ele fornece métodos utilitários para fazer isso:
fonte
Use a biblioteca Joda-Time
Joda Time tem um conceito de intervalo de tempo:
Mais um exemplo de diferença de data
Mais um link
ou com Java-8 (que integrou os conceitos Joda-Time)
fonte
Aqui está como o problema pode ser resolvido em Java 8, assim como a resposta de shamimz.
Fonte: http://docs.oracle.com/javase/tutorial/datetime/iso/period.html
O código produz uma saída semelhante à seguinte:
Temos que usar LocalDateTime http://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html para obter diferenças de hora, minuto e segundo.
fonte
fonte
Você pode criar um método como
Este método retornará o número de dias entre os 2 dias.
fonte
Como Michael Borgwardt escreve em sua resposta aqui :
fonte
Em Java 8, você pode fazer de
DateTimeFormatter
,Duration
eLocalDateTime
. Aqui está um exemplo:fonte
Funcionou para mim pode tentar com isso, espero que seja útil. Deixe-me saber se houver alguma preocupação.
fonte
Este é o código:
e a saída é:
fonte
com referência à atualização de resposta de shamim, aqui está um método que realiza a tarefa sem usar nenhuma biblioteca de terceiros. Basta copiar o método e usar
fonte
Resolvi o problema semelhante usando um método simples recentemente.
E como esperado, imprime:
7 days ago
.fonte
Este é um programa que escrevi, que obtém o número de dias entre 2 datas (sem tempo aqui).
http://pastebin.com/HRsjTtUf
fonte
Como calcular a diferença entre duas datas em Java
fonte