fork download
  1. import java.time.Duration;
  2. import java.time.LocalDateTime;
  3. import java.time.Month;
  4.  
  5. public class Main {
  6. public static void main(String[] args) {
  7. LocalDateTime startDateTime = LocalDateTime.of(2020, Month.NOVEMBER, 10, 15, 20, 25);
  8. LocalDateTime endDateTime = LocalDateTime.of(2020, Month.DECEMBER, 10, 18, 24, 30);
  9.  
  10. Duration duration = Duration.between(startDateTime, endDateTime);
  11. // Default format
  12. System.out.println(duration);
  13.  
  14. // Custom format
  15. // ####################################Java-8####################################
  16. String formattedElapsedTime = String.format("%d days %d hour(s) %d minute(s) %d second(s)", duration.toDays(), duration.toHours() % 24,
  17. duration.toMinutes() % 60, duration.toSeconds() % 60);
  18. System.out.println(formattedElapsedTime);
  19. // ##############################################################################
  20.  
  21. // ####################################Java-9####################################
  22. formattedElapsedTime = String.format("%d days %d hour(s) %d minute(s) %d second(s)", duration.toDaysPart(), duration.toHoursPart(),
  23. duration.toMinutesPart(), duration.toSecondsPart());
  24. System.out.println(formattedElapsedTime);
  25. // ##############################################################################
  26. }
  27. }
Success #stdin #stdout 0.12s 54684KB
stdin
Standard input is empty
stdout
PT723H4M5S
30 days 3 hour(s) 4 minute(s) 5 second(s)
30 days 3 hour(s) 4 minute(s) 5 second(s)