使用Android DateUtils API在Android中将相对日期格式设置为人类可读格式

Loc*_*Loc 28 android date-format

我有一个日期字段(lastUpdated).我想将这个日期翻译成人类可读的格式,例如'今天','1天前','2天前',......

我正在使用Android库中包含的android.text.format.DateUtils API.

这是我的尝试:

 DateUtils.getRelativeDateTimeString(context, 
                  lastUpdated.getTime(), 
                  DateUtils.DAY_IN_MILLIS, 
                  DateUtils.WEEK_IN_MILLIS, 
                  DateUtils.FORMAT_SHOW_YEAR);
Run Code Online (Sandbox Code Playgroud)

这是输出:

0 day ago, 12:00am
yesterday, 9:30am
2 days ago, 1:30pm
Sep 4, 12:30pm
Run Code Online (Sandbox Code Playgroud)

我预期的结果:(没有时间信息)

0 day ago --------- This should be 'today'
yesterday
2 days ago
Sep 4
Run Code Online (Sandbox Code Playgroud)

请注意,如果我从lastUpdated清除时间.它将显示'12:00am'的时间信息.

有人有什么想法吗?有没有办法从输出中删除时间?

谢谢!

Ido*_*lon 58

您可以使用DateUtils.getRelativeTimeSpanString:

long now = System.currentTimeMillis();
DateUtils.getRelativeTimeSpanString(lastUpdated.getTime(), now, DateUtils.DAY_IN_MILLIS);
Run Code Online (Sandbox Code Playgroud)

  • 我使用它,它适用于API 18+,但API 16和17它在Android模拟器上显示"在0天内"和"明天"(小写)而不是"今天"和"明天".任何人都知道为什么会这样? (3认同)