validar studio sistema obtener hora fechas fecha como actual android date-format

studio - Formato de la fecha relativa al formato legible por el ser humano en Android usando la API DateUtils de Android



obtener la fecha actual en java android (2)

Tengo un campo de fecha (lastUpdated). Quiero traducir esta fecha a un formato legible para el ser humano, como "hoy", "hace 1 día", "hace 2 días", ...

Estoy usando la API android.text.format.DateUtils que se incluye en la biblioteca de Android.

Aquí está mi intento:

DateUtils.getRelativeDateTimeString(context, lastUpdated.getTime(), DateUtils.DAY_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, DateUtils.FORMAT_SHOW_YEAR);

Aquí está la salida:

0 day ago, 12:00am yesterday, 9:30am 2 days ago, 1:30pm Sep 4, 12:30pm

El resultado que esperaba: (No hay información de tiempo)

0 day ago --------- This should be ''today'' yesterday 2 days ago Sep 4

OBSERVA que, si borro el tiempo de lastUpdated. Mostrará ''12: 00am ''para información de tiempo.

¿Alguien tiene alguna idea? ¿Hay alguna manera de eliminar el tiempo de salida?

¡Gracias!


Parece que quieres tener un controlador personalizado para los tiempos que son recientes, y algo más estándar para las fechas que están más lejos. algo como esto funcionaria

public String getTimeDiff(long secondsTimeDiff) { long secondsInOneDay = 84600; int maxDaysAgo = 10; if ( secondsTimeDiff < secondsInOneDay) { return "today"; } else if ( secondsTimeDiff < 2*secondsInOneDay) { return "yesterday"; } else if ( secondsTimeDiff < maxDaysAgo*secondsInOneDay) { int days = (int) (secondsTimeDiff / secondsInOneDay); return days + " days ago"; } else { //use normal DateUtils logic here... return "...."; } }


Puedes usar DateUtils.getRelativeTimeSpanString para eso:

long now = System.currentTimeMillis(); DateUtils.getRelativeTimeSpanString(lastUpdated.getTime(), now, DateUtils.DAY_IN_MILLIS);