android getRelativeTimeSpanString() bug?

2022-09-03 14:40:35

使用Android中的内置方法,我无法获得文档说我应该接收的“几分钟前”“几天前”等时间经过的响应,相反,我得到的结果只是以“may 12 2010”之类的方式显示实际日期,不确定这是一个错误还是什么,但Ive尝试了两者,并且, 两者都只是返回变量“long time”的实际日期getRelativeTimeSpanString()DateUtilgetRelativeTimeSpanString (long time, long now, long minResolution)getRelativeTimeSpanString (long startTime)

这是我的代码

private void setJoineddate() {
    Date currentDate = new Date();
    long currentDateLong = currentDate.getTime();
    long oldDate = join_date.getTime();

    CharSequence relativeTime = DateUtils
                         .getRelativeTimeSpanString(oldDate, currentDateLong, 0);
    joindate.setText(relativeTime);

}

答案 1

不是错误。 只会给你一个相对时间字符串,最多一周的时间差。因此,如果您与以下值一起使用getRelativeTimeSpanStringDateUtils.getRelativeTimeSpanString(time2, now, 0L, DateUtils.FORMAT_ABBREV_RELATIVE)

long now = System.currentTimeMillis();
long time2 = now - DateUtils.WEEK_IN_MILLIS;

如果今天是,你会得到,但是1 October8 October

long now = System.currentTimeMillis();
long time2 = now - DateUtils.WEEK_IN_MILLIS + 1;

会给你.7 days ago


答案 2

试试这个代码

DateUtils.getRelativeTimeSpanString(oldDate, currentDateLong,
    0L, DateUtils.FORMAT_ABBREV_ALL);

它会返回,依此类推。阅读文档并使用第三个参数来修改函数返回的字符串。Just now3 minutes ago