基本上我所拥有的是一个包含文件上次修改日期的字符串。为了得到这个,我使用:
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");
有意义吗?如果有的话,请告诉我它是如何完成的。一个很好的例子是本机消息应用程序。当一条消息被创建时,它会显示它的时间,然后在一些日子之后,格式改变为创建日期,然后是月份......
我正试图做到这一点。
答案 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