如何获得一个由三个字母组成的月份的相对时间字符串?

Ron*_*vis 3 android android-dateutils

我正在使用此代码在我的应用程序中获取相对时间:

DateUtils.getRelativeTimeSpanString(
        mReferenceTime,
        now,
        DateUtils.MINUTE_IN_MILLIS,
        DateUtils.FORMAT_ABBREV_RELATIVE
);
Run Code Online (Sandbox Code Playgroud)

它正确返回了所有内容,但我想缩短月份。例如,代替“December 21”,它应该返回“Dec 21”。我怎样才能做到这一点?

stk*_*ent 5

检查标志DateUtils.FORMAT_ABBREV_MONTH。来自 Android源代码(第 781-782 行)

“如果FORMAT_ABBREV_MONTH已设置,则月份(如果显示)将缩写为 3 个字母的字符串。”

看一下三参数版本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);
}
Run Code Online (Sandbox Code Playgroud)

由此看来,DateUtils.FORMAT_ABBREV_RELATIVE | DateUtils.FORMAT_ABBREV_MONTH作为第四个参数传入getRelativeTimeSpanString可以解决您的问题。