Java 类似Facebook(Android)的时间戳

Java 类似Facebook(Android)的时间戳,java,android,xml,onclick,timestamp,Java,Android,Xml,Onclick,Timestamp,我正试图找出如何制作像Facebook onClick这样的时间戳。我想让它像刚才一样,一分钟前,一小时前,昨天下午12:34,等等。我只是不太明白,也没有看到任何人要求android或java编码 您可以使用来执行此操作。 像这样- PrettyTime prettyTime = new PrettyTime(Locale.getDefault()); String ago = prettyTime.format(new Date(time)); 你可以用它来做这件事。 像这样- Prett

我正试图找出如何制作像Facebook onClick这样的时间戳。我想让它像刚才一样,一分钟前,一小时前,昨天下午12:34,等等。我只是不太明白,也没有看到任何人要求android或java编码

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

PrettyTime prettyTime = new PrettyTime(Locale.getDefault());
String ago = prettyTime.format(new Date(time));
你可以用它来做这件事。 像这样-

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

选中此选项,它将帮助您:

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));
    }}
公共类时间间隔{
公共静态最终列表时间=Arrays.asList(
时间单位。天。托米利斯(365),
时间单位。天。托米利斯(30),
时间单位。天。托米利斯(1),
时间单位。小时。托米利斯(1),
时间单位。分钟。托米利斯(1),
时间单位。秒。托米利斯(1));
公共静态最终列表timestring=Arrays.asList(“年”、“月”、“日”、“小时”、“分钟”、“秒”);
公共静态字符串toDuration(长持续时间){
StringBuffer res=新的StringBuffer();
对于(int i=0;i0){
res.append(temp.append(“”).append(Lists.timestring.get(i)).append(temp>1?“s”:“”).append(“ago”);
打破
}
}
如果(“.”等于(res.toString())
返回“0秒前”;
其他的
return res.toString();
}
公共静态void main(字符串参数[]){
系统输出打印项数(toDuration(123));
系统输出打印项数(toDuration(1230));
系统输出打印项数(toDuration(12300));
系统输出打印项次(toDuration(123000));
系统输出打印项次(toDuration(1230000));
系统输出打印项次(toDuration(12300000));
系统输出打印项数(toDuration(123000000));
系统输出打印项数(toDuration(1230000000));
系统输出打印项数(toDuration(12300000000L));
系统输出打印项数(toDuration(123000000000L));
}}
//输出类

3小时前

一天前

14天前

4个月前


3年前

检查此项它将帮助您:

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));
    }}
公共类时间间隔{
公共静态最终列表时间=Arrays.asList(
时间单位。天。托米利斯(365),
时间单位。天。托米利斯(30),
时间单位。天。托米利斯(1),
时间单位。小时。托米利斯(1),
时间单位。分钟。托米利斯(1),
时间单位。秒。托米利斯(1));
公共静态最终列表timestring=Arrays.asList(“年”、“月”、“日”、“小时”、“分钟”、“秒”);
公共静态字符串toDuration(长持续时间){
StringBuffer res=新的StringBuffer();
对于(int i=0;i0){
res.append(temp.append(“”).append(Lists.timestring.get(i)).append(temp>1?“s”:“”).append(“ago”);
打破
}
}
如果(“.”等于(res.toString())
返回“0秒前”;
其他的
return res.toString();
}
公共静态void main(字符串参数[]){
系统输出打印项数(toDuration(123));
系统输出打印项数(toDuration(1230));
系统输出打印项数(toDuration(12300));
系统输出打印项次(toDuration(123000));
系统输出打印项次(toDuration(1230000));
系统输出打印项次(toDuration(12300000));
系统输出打印项数(toDuration(123000000));
系统输出打印项数(toDuration(1230000000));
系统输出打印项数(toDuration(12300000000L));
系统输出打印项数(toDuration(123000000000L));
}}
//输出类

3小时前

一天前

14天前

4个月前


3年前

这个答案似乎更好!请添加一个用法示例。这个答案似乎更好!请添加一个用法示例。