我有一个日期字段(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);

这是输出:
0 day ago, 12:00am
yesterday, 9:30am
2 days ago, 1:30pm
Sep 4, 12:30pm

我期望的结果:(无时间信息)
0 day ago --------- This should be 'today'
yesterday
2 days ago
Sep 4

请注意,如果我从lastUpdated清除时间。它将显示“12:00 am”以获取时间信息。

有人有什么想法吗?有什么办法可以减少输出时间?

谢谢!

最佳答案

您可以为此使用DateUtils.getRelativeTimeSpanString:

long now = System.currentTimeMillis();
DateUtils.getRelativeTimeSpanString(lastUpdated.getTime(), now, DateUtils.DAY_IN_MILLIS);

07-26 02:58