Java - Temps écoulé en jours, heures, minutes, secondes
Deux exemples Java vous montrent comment imprimer le temps écoulé au format jours, heures, minutes et secondes.
1. API de date JDK standard
Vous devez calculer manuellement le temps écoulé.
DateTimeUtils.java
package com.example.dateUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateTimeUtils { public static void main(String[] args) { DateTimeUtils obj = new DateTimeUtils(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/M/yyyy hh:mm:ss"); try { Date date1 = simpleDateFormat.parse("10/10/2013 11:30:10"); Date date2 = simpleDateFormat.parse("13/10/2013 20:35:55"); obj.printDifference(date1, date2); } catch (ParseException e) { e.printStackTrace(); } } //1 minute = 60 seconds //1 hour = 60 x 60 = 3600 //1 day = 3600 x 24 = 86400 public void printDifference(Date startDate, Date endDate){ //milliseconds long different = endDate.getTime() - startDate.getTime(); System.out.println("startDate : " + startDate); System.out.println("endDate : "+ endDate); System.out.println("different : " + different); long secondsInMilli = 1000; long minutesInMilli = secondsInMilli * 60; long hoursInMilli = minutesInMilli * 60; long daysInMilli = hoursInMilli * 24; long elapsedDays = different / daysInMilli; different = different % daysInMilli; long elapsedHours = different / hoursInMilli; different = different % hoursInMilli; long elapsedMinutes = different / minutesInMilli; different = different % minutesInMilli; long elapsedSeconds = different / secondsInMilli; System.out.printf( "%d days, %d hours, %d minutes, %d seconds%n", elapsedDays, elapsedHours, elapsedMinutes, elapsedSeconds); } }
Sortie
startDate : Thu Oct 10 11:30:10 SGT 2013 endDate : Sun Oct 13 20:35:55 SGT 2013 different : 291945000 3 days, 9 hours, 5 minutes, 45 seconds
How about years and months?
Il est très difficile de calculer l’année et le mois manuellement, nous vous suggérons d’utiliser la bibliothèque joda time, voir l’exemple suivant.
2. Exemple de temps Joda
Joda-time est la bibliothèque de date et d'heure Java préférée, elle contient des API pour calculer le temps écoulé et l'obtenir au format années, mois, jours, heures, minutes et secondes.
DateTimeUtils.java
package com.example.dateUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.joda.time.Interval; import org.joda.time.Period; public class DateTimeUtils { public static void main(String[] args) { DateTimeUtils obj = new DateTimeUtils(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/M/yyyy hh:mm:ss"); try { Date date1 = simpleDateFormat.parse("10/10/2013 11:30:10"); Date date2 = simpleDateFormat.parse("13/11/2014 20:35:55"); obj.printDifference(date1, date2); } catch (ParseException e) { e.printStackTrace(); } } public void printDifference(Date startDate, Date endDate){ Interval interval = new Interval(startDate.getTime(), endDate.getTime()); Period period = interval.toPeriod(); System.out.printf( "%d years, %d months, %d days, %d hours, %d minutes, %d seconds%n", period.getYears(), period.getMonths(), period.getDays(), period.getHours(), period.getMinutes(), period.getSeconds()); } }
Sortie
1 years, 1 months, 3 days, 9 hours, 5 minutes, 45 seconds