estoy usando la biblioteca Joda para obtener período de tiempo transcurrido desde que una marca de tiempo determinado:Período de tiempo aproximado con la Joda-Time
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);
}
La función devuelve cadenas período de tiempo exacto para las marcas de tiempo dado. Por ejemplo:
3 minutes, 23 seconds
1 hour, 30 minutes, 57 seconds
1 day, 23 hours, 21 minutes, 19 seconds
¿Hay alguna manera de que pueda obtener el tiempo aproximado en lugar de exacto? Por ejemplo, si han transcurrido un minuto y 30 segundos desde el initialTimestamp
, solo devuelve 1.5 minutes
. Del mismo modo, si han transcurrido una hora y 35 minutos, devuelve about 1.5 hours
en lugar de 1 hora, 35 minutos, xy segundos.
Sé que la cadena devuelta se puede analizar y manipular, pero estoy buscando algo más sofisticado.
3 horas y 48 minutos deben ser 4 horas, ya que es pase 3:30 (o 3.5) – jmateo