Un listado con fechas puede resultar más fácil de leer si en vez de mostrar las fechas, mostramos el tiempo que ha transcurrido desde esa fecha hasta ahora. Por ejemplo, un listado como este:
| Nombre | Fecha creacion |
| Roberto Jose | 21/11/2008 14:00:01 |
| Jose Luis | 22/12/2008 19:23:45 |
| Luis Roberto | 26/12/2008 22:30:10 |
Puede quedar más elegante así:
| Nombre | Creado hace |
| Roberto Jose | 15 min y 7 seg |
| Jose Luis | 2 horas, 6 min y 56 seg |
| Luis Roberto | 18 dias, 9 horas, 15 min y 2 seg |
En Java no existe nada en el JDK que nos muestre esta información. Podemos usar la librería Joda time, que es muy útil para hacer calculos con fechas, mostrar intervalos de tiempo y manipulaciones complejas con fechas absolutas y relativas. Pero si solo queremos motrar esta información y no nos apetece importar un jar en nuestro proyecto para esto solo, podemos usar este código:
public static String desde(Long time) {
int total = (int)((System.currentTimeMillis()/1000)-(time/1000));
if (total < 60) { // menos que un minuto (60 segundos)
return total+" seg";
} else if (total < 3600) { // menos que una hora (60*60 segundos)
return (total/60)+" min y "+(total%60)+" seg";
} else if (total < 84600) { // menos que un dia (60*60*24 segundos)
return (total/3600)+" horas, "+(total%3600)/60+" min y "+(total%60)+" seg";
}
// Mas de un dia
return (total/84600)+" dias, "+(total%84600)/3600+" horas, "+(total%3600)/60+" min y "+(total%60)+" seg";
}
Aunque es mejorable, puede servir para empezar. :)
Popularity: 1% [?]