使用getRelativeTimeSpanString时FORMAT_SHOW_TIME为何不显示时间?
问题原因及解决方法
核心问题:仅传入
FORMAT_SHOW_TIME标志不足以让getRelativeTimeSpanString在“Yesterday”这类跨天的相对时间后显示具体时间。该标志默认仅在时间属于当前日历日时才会展示时间部分,对于跨天的日期,需要额外配合其他标志来触发时间显示。解决办法:同时传入
FORMAT_SHOW_DATE | FORMAT_SHOW_TIME标志组合,这样就能让方法返回类似“Yesterday, 11:00 AM”的结果。
修改后的代码示例:
android.text.format.DateUtils.getRelativeTimeSpanString( currentTimeInMilliseconds() - 1_000 * 60 * 60 * 25, System.currentTimeMillis(), MINUTE_IN_MILLIS, DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_TIME )
- 补充说明:这个标志组合会自动适配场景——对“今天”的时间仅显示时分,对“昨天”及更早的日期则显示相对日期文本+具体时间,正好匹配你的预期需求。
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

