Как я могу получить относительную строку времени с трехбуквенным месяцем?

Я использую этот код, чтобы получить относительное время в моем приложении:

DateUtils.getRelativeTimeSpanString(
        mReferenceTime,
        now,
        DateUtils.MINUTE_IN_MILLIS,
        DateUtils.FORMAT_ABBREV_RELATIVE
);

Он возвращает все правильно, но я хочу сократить месяц. Например, вместо "21 декабря" вместо этого следует вернуть "21 декабря". Как мне этого добиться?

1 ответ

Решение

Проверьте флаг DateUtils.FORMAT_ABBREV_MONTH, Из исходного кода Android (строки 781-782):

"Если FORMAT_ABBREV_MONTH устанавливается, тогда месяц (если показан) сокращается до трехбуквенной строки."

Посмотрите на трехпараметрическую версию getRelativeTimeSpanString:

public static CharSequence getRelativeTimeSpanString(long time, long now, long minResolution) {
    int flags = FORMAT_SHOW_DATE | FORMAT_SHOW_YEAR | FORMAT_ABBREV_MONTH;
    return getRelativeTimeSpanString(time, now, minResolution, flags);
}

Отсюда видно, что, проходя в DateUtils.FORMAT_ABBREV_RELATIVE | DateUtils.FORMAT_ABBREV_MONTH в качестве четвертого параметра getRelativeTimeSpanString решит вашу проблему

Другие вопросы по тегам