小编Dav*_*vis的帖子

DateUtils.getRelativeTimeSpanString返回格式化的日期字符串,而不是“前几小时/分钟”

我在尝试获取DateUtils.getRelativeTimeSpanString以返回其在Android中应该遇到的问题时遇到了严重的问题。

我在这里经历过每个类似的问题,而发布的解决方案都没有起作用或没有意义。

这是我的代码:

CharSequence relativeDate = 
DateUtils.getRelativeTimeSpanString(System.currentTimeMillis(), 
            currentNewsItem.getTimeInMilliseconds(), 
            DateUtils.HOUR_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE);
            dateView.setText(relativeDate);
Run Code Online (Sandbox Code Playgroud)

currentNewsItem.getTimeInMilliseconds方法确实确实返回了很长的时间(例如,刚过去1521759734它看起来正确),并且getRelativeTimeSpanString将正确格式的日期字符串以“ 2018年3月23日”的格式传递给视图,因此它知道正确的日期。但是我需要它通过“ x小时前”或“ x分钟前”,而且我无法终生弄清楚为什么不是这样。

我已经检查了模拟器上的时间,并且问题出现在我的设备上,因此不是时区设置。

文档说,如果时间跨度大于7天,它将恢复为这样的日期字符串,但是我检查了过去的时间,因为旧时间已经过去,转换器网站显示这是4小时前的确切时间。此外,它显示的是正确的日期(今天),而不是小时/分钟前。

我已经尝试过将HOUR_IN_MILLIS,MINUTES_IN_MILLIS和SECONDS_IN_MILLIS常量用于第三个参数,并且尝试删除了最后一个缩写参数,但结果仍然相同。

我尝试了各种公共方法签名来尝试查找可能有效的签名,但它们都具有相同的结果。

有没有人遇到过这种情况,或者有人可以指出我要去哪里错了?非常感谢。

android android-date apache-commons-dateutils android-dateutils java-date

0
推荐指数
1
解决办法
1837
查看次数