【发布时间】:2014-10-27 10:07:45
【问题描述】:
我想弄清楚如何制作像 Facebook onClick 这样的时间戳。我希望它显示为刚刚,一分钟前,一小时前,昨天@ 12:34 pm,等等。我只是想不通,也没有看到任何人要求进行 android 或 java 编码的任何内容。
【问题讨论】:
标签: java android xml onclick timestamp
我想弄清楚如何制作像 Facebook onClick 这样的时间戳。我希望它显示为刚刚,一分钟前,一小时前,昨天@ 12:34 pm,等等。我只是想不通,也没有看到任何人要求进行 android 或 java 编码的任何内容。
【问题讨论】:
标签: java android xml onclick timestamp
您可以使用Prettytime 来执行此操作。 像这样——
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));
}}
//输出类似
3 小时前
1 天前
14 天前
4 个月前
3 年前
【讨论】: