Да, начните с даты и используйте getTime()
для преобразования в миллисекунды (или getTimeInMillis()
для ваших календарей).Это дает вам длинные значения, которые вы можете вычесть.Это легкая часть.
Затем вы можете сами преобразовать эти миллисекунды в читаемый формат.Но, вероятно, имеет смысл использовать для этого упакованную библиотеку.
Некоторым людям нравится библиотека Joda для подобных вычислений дат.Я нахожу Commons Lang фантастическим.Он предоставляет DateUtils
, что полезно, если вы обнаружите, что хотите выполнять вычисления, такие как округление или усечение дат до ближайшей минуты или часа и т. Д. Для вас наиболее полезной будет класс DurationFormatUtils
, который дает вам такие функции, какformatDurationHMS
для форматирования в хороший час: минута: второй дисплей и formatDurationWords
для получения текста (необыкновенно!) Или других аналогичных функций для простого форматирования ваших миллисекунд в удобный для восприятия человеком формат.