【问题标题】:Timestamp like Facebook (Android)像 Facebook (Android) 这样的时间戳
【发布时间】:2014-10-27 10:07:45
【问题描述】:

我想弄清楚如何制作像 Facebook onClick 这样的时间戳。我希望它显示为刚刚,一分钟前,一小时前,昨天@ 12:34 pm,等等。我只是想不通,也没有看到任何人要求进行 android 或 java 编码的任何内容。

【问题讨论】:

    标签: java android xml onclick timestamp


    【解决方案1】:

    您可以使用Prettytime 来执行此操作。 像这样——

    PrettyTime prettyTime = new PrettyTime(Locale.getDefault());
    String ago = prettyTime.format(new Date(time));
    

    【讨论】:

    • 这个答案似乎更好!请添加使用示例。
    【解决方案2】:

    勾选这个对你有帮助:

    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));
        }}
    

    //输出类似

    3 小时前

    1 天前

    14 天前

    4 个月前

    3 年前

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      相关资源
      最近更新 更多