Подтвердить что ты не робот

Отформатируйте относительную дату в формате для чтения человеком на Android с помощью Android DateUtils API

У меня есть поле даты (lastUpdated). Я хочу перевести эту дату в понятный для человека формат, такой как "сегодня", "1 день назад", "2 дня назад",...

Я использую API

У кого-нибудь есть идеи? Есть ли способ удалить время с вывода?

Спасибо!

4b9b3361

Ответ 1

Вы можете использовать DateUtils.getRelativeTimeSpanString для этого:

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

Ответ 2

похоже, что вы хотите иметь пользовательский обработчик для тех времен, которые являются последними, и что-то большее, чем для дат, которые находятся дальше. что-то вроде этого будет работать:

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 "....";
    }
}