转载请注明出处 http://blog.youkuaiyun.com/qq_31715429/article/details/51941963
本文出自:猴菇先生的博客
有这么个需求,服务器返回一个时间字符串,我们计算出这个时间和当前手机时间的时间间隔,如几分钟前、几月前。
/**
* 计算两个时间之间的间隔时间
* @param netTime 服务器返回的时间字符串
*/
public static String gapTime(String netTime) {//2016-07-07T07:15:11.531Z
netTime = netTime.substring(0, netTime.lastIndexOf(".")).replace("T", " ");
try {
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(netTime);
long netT = date.getTime();
long localT = System.currentTimeMillis();
long gapT = localT - netT;//间隔时间的毫秒值
if (gapT / 1000 / 60 / 60 / 24 / 30 / 12 >= 1) {
return (int) (gapT / 1000 / 60 / 60 / 24 / 30 / 12) + "年前";
} else {
if (gapT / 1000 / 60 / 60 / 24 / 30 >= 1) {
return (int) (gapT / 1000 / 60 / 60 / 24 / 30) + "个月前";
} else {
if (gapT / 1000 / 60 / 60 / 24 >= 1) {
return (int) (gapT / 1000 / 60 / 60 / 24) + "天前";
} else {
if (gapT / 1000 / 60 / 60 >= 1) {
return (int) (gapT / 1000 / 60 / 60) + "小时前";
} else {
if (gapT / 1000 / 60 >= 1) {
return (int) (gapT / 1000 / 60) + "分钟前";
} else {
return "刚刚";
}
}
}
}
}
} catch (ParseException e) {
e.printStackTrace();
}
return "";
}
麻烦了点,而且时间越久越不精确。。