2014-09-10 39 views
0

本質上,我所擁有的是一個字符串,其中包含文件上次修改日期。爲了得到這個我正在使用:更改DateFormat取決於通過的天數

Date lastModDate = new Date(file.lastModified()); 
SimpleDateFormat formatter = new SimpleDateFormat("K:mm a"); 
String formattedDateString = formatter.format(lastModDate); 

最終的結果有點像6:12 AM。我想要做的是每次過了一段時間,dateformat必須改變。例如。

經過1天后,Last Modified Date =(「Format1」);

一週後,Last Modified Date =(「Format2」);

經過2周後,Last Modified Date =(「Format3」);

它有道理嗎?如果是的話,請能夠告訴我它是如何完成的。本地消息應用程序就是一個很好的例子。當一條消息被創建時,它會顯示它的時間,然後幾天後,格式更改爲它創建的日期,然後是月份等...

我正在努力做到這一點。

回答

0

計算的最後修改日期和現在之間的時間差:

long duration = lastModDate.getTimeInMillis() - current.getTimeInMillis(); 
long sec = TimeUnit.MILLISECONDS.toSeconds(duration); 
boolean inFuture = sec > 0; 
// Use positive value 
if(!inFuture) 
     sec = -sec; 
long minutes = sec/60 % 60; 
long hours = sec/3600 % 24; 
long days = sec/86400; 

if(days > 1 && days < 7) 
     // Use format 1 
else if(days >= 7 && days < 14) 
     // Use format 2 
else 
     // Use format 3