Le calcul de la différence entre Java deux occurrences de date

Je suis à l'aide de Java java.util.Date classe de Scala et souhaitez comparer un Date objet et l'heure actuelle. Je sais que je peux calculer le delta en utilisant getTime():

(new java.util.Date()).getTime() - oldDate.getTime()

Cependant, cela me laisse avec un long représentant millisecondes. Est-il plus simple, plus agréable façon à obtenir un temps de delta?

  • Pourquoi pas d'amour pour joda time? C'est à peu près la meilleure option si vous êtes en train de traiter avec des dates en java.
  • Veuillez vérifier mes élégant 2 lignes solution, sans l'aide de Joda et donner le résultat en tout TimeUnit stackoverflow.com/a/10650881/82609
  • essayez ceci: mkyong.com/java/how-to-calculate-date-time-difference-in-java
  • Honte à tous ceux qui recommandent Joda temps, et ne pas recommander un vrai Java réponse...
  • Pour la plupart des solutions proposées ici et d'ailleurs, elles sont inexactes lors de l'heure d'été (DST) est pris en compte. En effet, quand 24 heures sont ajoutés au samedi 2016-03-26T23:30 CET, la date obtenue est 2016-03-28T00:30 (HEC) et de deux jours du franchissement des frontières, en Effet, l'heure d'été va en effet, le dimanche 2016-03-27T02:00 Heure d'europe Centrale. Le problème de l'heure d'été n'est pas spécifique à CET et se produit chaque tme de la période considérée contient de l'heure d'été va en effet.
  • Concernant recommander Joda-Time, la vieille date-heure classes livré avec Java sont mauvais, vraiment mauvais, mal conçue, de la confusion, et gênants. Tellement mauvais que Joda-Time est devenue un immense succès de leur remplacement. Tellement mauvais que même Sun/Oracle a donné sur eux, et a adopté le java.en temps dans le cadre de Java 8 et les versions ultérieures. La java.les classes de temps sont inspirés par Joda-Time. Les deux Joda-Time et java.les temps sont dirigés par le même homme, Stephen Colbourne. Je dirais, “Honte à tous ceux de recommander l'utilisation de Date, Calendar, et SimpleDateFormat”.
  • OP demandé un "plus simple, plus agréable façon à obtenir un temps de delta"; un rapide, deux lignes de comparaison semble plus simple/plus agréable que d'exiger une dépendance externe.
  • Alors que Joda Time était probablement une bonne réponse quand la question a été posée, aujourd'hui la meilleure réponse pour n'importe qui peut utiliser Java 8 est d'utiliser java.time.Period et/ou Duration. Voir le Basilic Bourque réponse ci-dessous.
  • Vous pouvez également regarder les Calculer le nombre de jours entre deux dates en Java 8. Et encore éviter toute dépendance externe.

InformationsquelleAutor pr1001 | 2009-10-12