2014-09-10 22 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