根据过去的天数更改日期格式

时间:2014-09-10 19:05:12

标签: android date format

基本上我所拥有的是一个包含文件上次修改日期的字符串。为了得到这个,我使用:

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

最终结果有点像早上6:12。我想要做的是每次通过一段时间,日期格式必须改变。 E.g。

经过1天后,上次修改日期=("格式1");

一周过去了,上次修改日期=("格式2");

经过2周后,上次修改日期=("格式3");

有意义吗?如果有的话,请告诉我它是如何完成的。一个很好的例子是本机消息应用程序。当一条消息被创建时,它会显示它的时间,然后在一些日子之后,格式改变为创建日期,然后是月份......

我正试图做到这一点。

1 个答案:

答案 0 :(得分: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