Android計算兩個時間戳的差值,以字串的形式表示

王世暉發表於2016-03-15

好比新聞系統,會有釋出時間的標示,如果釋出時間顯示的是幾天前釋出,幾個小時前釋出,給使用者的體驗可能會更好

因此需要將兩個時間戳的差值轉換為字串


/**
 * Created by wangshihui on 2015/10/26.
 * 暫時只提供計算兩個時間的差值
 */
public class TimeUtils {
    /*
    *計算time2減去time1的差值 差值只設定 幾天 幾個小時 或 幾分鐘
    * 根據差值返回多長之間前或多長時間後
    * */
    public static String getDistanceTime(long  time1,long time2 ) {
        long day = 0;
        long hour = 0;
        long min = 0;
        long sec = 0;
        long diff ;
        String flag;
        if(time1<time2) {
            diff = time2 - time1;
            flag="前";
        } else {
            diff = time1 - time2;
            flag="後";
        }
        day = diff / (24 * 60 * 60 * 1000);
        hour = (diff / (60 * 60 * 1000) - day * 24);
        min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
        sec = (diff/1000-day*24*60*60-hour*60*60-min*60);
        if(day!=0)return day+"天"+flag;
        if(hour!=0)return hour+"小時"+flag;
        if(min!=0)return min+"分鐘"+flag;
        return "剛剛";
    }
}
呼叫:

Long createTime = helpBean.getParameters().getHelp().getCreateTime();
/*System.currentTimeMillis():
Returns the current time in milliseconds since January 1, 1970 00:00:00.0 UTC.*/
String timeDistance = TimeUtils.getDistanceTime(createTime, System.currentTimeMillis());
tvPublishTime.setText(timeDistance);

相關文章