Чтобы рассчитать истекшее время с JodaTime, используйте Period
.Чтобы отформатировать истекшее время в желаемом человеческом представлении, используйте PeriodFormatter
, который вы можете построить с помощью PeriodFormatterBuilder
.
Вот пример запуска:
DateTime myBirthDate = new DateTime(1978, 3, 26, 12, 35, 0, 0);
DateTime now = new DateTime();
Period period = new Period(myBirthDate, now);
PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendSeconds().appendSuffix(" seconds ago\n")
.appendMinutes().appendSuffix(" minutes ago\n")
.appendHours().appendSuffix(" hours ago\n")
.appendDays().appendSuffix(" days ago\n")
.appendWeeks().appendSuffix(" weeks ago\n")
.appendMonths().appendSuffix(" months ago\n")
.appendYears().appendSuffix(" years ago\n")
.printZeroNever()
.toFormatter();
String elapsed = formatter.print(period);
System.out.println(elapsed);
Это печатает уже сейчас
3 seconds ago
51 minutes ago
7 hours ago
6 days ago
10 months ago
31 years ago
(Кашель, старый, кашель) Вы видите, что я принял во внимание месяцы и годыа также настроил его так, чтобы пропустить значения, когда они равны нулю.