2013-03-05 98 views
2

所以[DateUtils.getRelativeTimeSpanString()] [1]在Android SDK的伟大工程,为显示相对时间是在过去。DateUtils.getRelativeTimeSpanString未来日期

即:5天前,或5分钟前。

但是,对于未来的日期来说,这似乎并不奏效。它似乎只是打印日期。

是否有产生相对时间跨度弦的日期是在未来(短写的东西,通过比较两个日历对象计算出的天,时,分,秒),任何简单的方法吗?

东西长的线路:在5天,或在5分钟内?

这里基本上是我不得不做,它只是看起来有点脏的(注:此代码只是为了帖子撰写并没有真正通过Java编译器运行):

Calendar calendarIO = Calendar.getInstance(); 
calendarIO.set(2013, 2, 14, 7, 0); 

long milliseconds1 = calendarIO.getTimeInMillis(); 
long milliseconds2 = System.currentTimeMillis(); 
long diff = milliseconds1 - milliseconds2; 
long diffSeconds = diff/1000; 
long diffMinutes = diff/(60 * 1000); 
long diffHours = diff/(60 * 60 * 1000); 
long diffDays = diff/(24 * 60 * 60 * 1000); 

String relativeTime = ""; 
if (diffDays > 1) { 
    relativeTime = diffDays + " days"; 
} else if (diffDays > 0) { 
    relativeTime = diffDays + " days " + diffHours + " hours"; 
} else if (diffHours > 1) { 
    relativeTime = diffHours + " hours"; 
} else if (diffMinutes > 0) { 
    relativeTime = diffMinutes + " minutes."; 
} 

回答

0
DateUtils.getRelativeTimeSpanString(endDate.getTime(), startDate.getTime(), DateUtils.FORMAT_ABBREV_RELATIVE); 

具有以下警告:

给出的明天而不是1天。