package cheng.app.cnbeta.util;
import android.content.Context;
import android.text.format.DateUtils;
import android.util.Log;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeUtil {
static final String TAG = "TimeUtil";
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
static final long WEEK = 24 * 60 * 60 * 7;
static final long DAY = 24 * 60 * 60;
static final long HOUR = 60 * 60;
static final long MINUTE = 60;
public static CharSequence formatTime(Context context, String time) {
long timestamp = 0;
try {
Date date = dateFormat.parse(time);
timestamp = date.getTime();
} catch (ParseException e) {
Log.w(TAG, "can't parse time!");
return time;
}
final long now = System.currentTimeMillis();
final long timeGap = (now - timestamp) / 1000;
if (timeGap < 0) {
return time;
} else if (timeGap < MINUTE) {
return DateUtils.getRelativeTimeSpanString(timestamp, now, DateUtils.SECOND_IN_MILLIS);
} else if (timeGap < HOUR) {
return DateUtils.getRelativeTimeSpanString(timestamp, now, DateUtils.MINUTE_IN_MILLIS);
} else if (timeGap < DAY) {
return DateUtils.getRelativeTimeSpanString(timestamp, now, DateUtils.HOUR_IN_MILLIS);
} else if (timeGap < WEEK) {
return DateUtils.getRelativeTimeSpanString(timestamp, now, DateUtils.DAY_IN_MILLIS);
} else if (timeGap < WEEK * 4) {
return DateUtils.getRelativeTimeSpanString(timestamp, now, DateUtils.WEEK_IN_MILLIS);
} else {
return time;
}
}
}