web-dev-qa-db-fra.com

différence en secondes entre deux dates en utilisant le temps joda?

Supposons qu'il y ait deux dates A (heure de début) et B (heure de fin). A & B pourrait être l'heure du même jour ou même d'un jour différent. Ma tâche est de montrer la différence en quelques secondes. Le format de date que j'utilise est

Date Format :: "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 

Par exemple.

start date ::   "2011-11-16T14:09:23.000+00:00"
end date ::     "2011-11-17T05:09:23.000+00:00"            

L'aide est appréciée.

43
Ankit Ostwal

Utilisez la classe Seconds:

DateTime now = DateTime.now();
DateTime dateTime = now.plusMinutes(10);
Seconds seconds = Seconds.secondsBetween(now, dateTime);
System.out.println(seconds.getSeconds());

Ce morceau de code imprime 600. Je pense que c'est ce dont vous avez besoin.

Pour plus de conseils, explorez la documentation de joda-time. C'est assez bon, et la plupart des choses sont très faciles à découvrir.

Si vous avez besoin d'aide pour l'analyse des dates (c'est dans les documents, vraiment), consultez les questions connexes, comme ceci:

Analyser la date avec Joda avec le fuseau horaire

107
pcalcao

La réponse de @pcalcao sera la meilleure dans la plupart des cas. Sachez que les secondes seront arrondies à un entier.

Si vous êtes intéressé par la précision des sous-secondes, il suffit de soustraire les millisecondes:

double seconds = (now.getMillis() - dateTime.getMillis()) / 1000d;
4
linqu