Я использую библиотеку Joda для получения периода времени, прошедшего с заданной отметки времени:
public static String getTimePassedSince(Date initialTimestamp){
DateTime initDT = new DateTime(initialTimestamp.getTime());
DateTime now = new DateTime();
Period p = new Period(initDT, now);
PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendYears().appendSuffix(" year, ", " years, ")
.appendMonths().appendSuffix(" month, ", " months, ")
.appendDays().appendSuffix(" day, ", " days, ")
.appendHours().appendSuffix(" hour, ", " hours, ")
.appendMinutes().appendSuffix(" minute, ", " minutes, ")
.appendSeconds().appendSuffix(" second, ", " seconds")
.printZeroNever()
.toFormatter();
return formatter.print(p);
}
Функция возвращает строки точного периода времени для заданных отметок времени.Например:
3 minutes, 23 seconds
1 hour, 30 minutes, 57 seconds
1 day, 23 hours, 21 minutes, 19 seconds
Есть ли способ получить приблизительное время вместо точного?Например, если после initialTimestamp
прошла одна минута и 30 секунд, возвращается только 1.5 minutes
.Точно так же, если прошел час и 35 минут, он возвращает about 1.5 hours
вместо 1 часа 35 минут xy секунд.
Я знаю, что возвращаемая строка может быть проанализирована и обработана, но я ищу что-то ещеизощренный.