fork download
  1. import java.time.Duration;
  2. import java.time.LocalDateTime;
  3. import java.time.Period;
  4. import java.time.format.DateTimeFormatter;
  5. import java.util.Locale;
  6.  
  7. public class Main {
  8. public static void main(String[] args) {
  9. DateTimeFormatter dtf = DateTimeFormatter.ofPattern("u-M-d H:m:s.SSS", Locale.ENGLISH);
  10. LocalDateTime start = LocalDateTime.parse("2020-06-15 16:21:00.000", dtf);
  11. LocalDateTime end = LocalDateTime.parse("2021-10-27 00:00:00.000", dtf);
  12.  
  13. Period period = Period.between(start.toLocalDate(), end.toLocalDate());
  14. System.out.println(period);
  15. // Custom format
  16. String elapsedPeriod = String.format("%d years %d months %d days", period.getYears(), period.getMonths(),
  17. period.getDays());
  18. System.out.println(elapsedPeriod);
  19.  
  20. Duration duration = Duration.between(start, end);
  21. System.out.println(duration);
  22. // Custom format
  23. // ####################################Java-8####################################
  24. String formattedElapsedTime = String.format("%d hours %d minutes %d seconds", duration.toHours() % 24,
  25. duration.toMinutes() % 60, duration.toSeconds() % 60);
  26. System.out.println(formattedElapsedTime);
  27. // ##############################################################################
  28.  
  29. // ####################################Java-9####################################
  30. formattedElapsedTime = String.format("%d hours %d minutes %d seconds", duration.toHoursPart(),
  31. duration.toMinutesPart(), duration.toSecondsPart());
  32. System.out.println(formattedElapsedTime);
  33. // ##############################################################################
  34.  
  35. System.out.println(elapsedPeriod + " " + formattedElapsedTime);
  36. }
  37. }
Success #stdin #stdout 0.12s 51772KB
stdin
Standard input is empty
stdout
P1Y4M12D
1 years 4 months 12 days
PT11959H39M
7 hours 39 minutes 0 seconds
7 hours 39 minutes 0 seconds
1 years 4 months 12 days 7 hours 39 minutes 0 seconds