使用Android DateUtils API将相对date的格式设置为Android中的可读格式

我有一个date字段(lastUpdated)。 我想把这个date翻译成人类可读的格式,如“今天”,“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:00am'的时间信息。

任何人有任何想法? 有什么办法来消除输出时间?

谢谢!

Solutions Collecting From Web of "使用Android DateUtils API将相对date的格式设置为Android中的可读格式"

你可以使用DateUtils.getRelativeTimeSpanString :

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

似乎你想要为最近的时间有一个自定义的处理程序,并且对于更远的date更加有用。 像这样的东西会工作:

 public String getTimeDiff(long secondsTimeDiff) { long secondsInOneDay = 84600; int maxDaysAgo = 10; if ( secondsTimeDiff < secondsInOneDay) { return "today"; } else if ( secondsTimeDiff < 2*secondsInOneDay) { return "yesterday"; } else if ( secondsTimeDiff < maxDaysAgo*secondsInOneDay) { int days = (int) (secondsTimeDiff / secondsInOneDay); return days + " days ago"; } else { //use normal DateUtils logic here... return "...."; } }