2014-10-27 95 views
1

我想弄清楚如何制作Facebook onClick这样的时间戳。我希望它表现得像Just Now,一分钟前一小时,昨天12:34 pm,等等。我只是不能完全弄明白,并没有看到任何人已经要求的Android或Java编码的任何东西。像Facebook(Android)的时间戳

回答

0

检查这一块它会帮助你:

public class TimeAgo { 
    public static final List<Long> times = Arrays.asList(
      TimeUnit.DAYS.toMillis(365), 
      TimeUnit.DAYS.toMillis(30), 
      TimeUnit.DAYS.toMillis(1), 
      TimeUnit.HOURS.toMillis(1), 
      TimeUnit.MINUTES.toMillis(1), 
      TimeUnit.SECONDS.toMillis(1)); 
    public static final List<String> timesString = Arrays.asList("year","month","day","hour","minute","second"); 

    public static String toDuration(long duration) { 

     StringBuffer res = new StringBuffer(); 
     for(int i=0;i< Lists.times.size(); i++) { 
      Long current = Lists.times.get(i); 
      long temp = duration/current; 
      if(temp>0) { 
       res.append(temp).append(" ").append(Lists.timesString.get(i)).append(temp > 1 ? "s" : "").append(" ago"); 
       break; 
      } 
     } 
     if("".equals(res.toString())) 
      return "0 second ago"; 
     else 
      return res.toString(); 
    } 
    public static void main(String args[]) { 
     System.out.println(toDuration(123)); 
     System.out.println(toDuration(1230)); 
     System.out.println(toDuration(12300)); 
     System.out.println(toDuration(123000)); 
     System.out.println(toDuration(1230000)); 
     System.out.println(toDuration(12300000)); 
     System.out.println(toDuration(123000000)); 
     System.out.println(toDuration(1230000000)); 
     System.out.println(toDuration(12300000000L)); 
     System.out.println(toDuration(123000000000L)); 
    }} 

//输出像

2小时前

1天前

13天前

4个月ago

3年前

3

您可以使用Prettytime来做到这一点。

+0

此答案似乎更好!请添加使用示例。 – 2015-06-08 08:06:15