package com.lh.fly.common.date; import android.text.TextUtils; import com.lh.fly.App; import com.lh.fly.R; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class TimeUtil { private static final String LINE = "-"; public static final long SECOND = 1000; public static final long MIN = 60 * SECOND; public static final long HOUR = 6 * MIN; public static final long DAY = 24 * HOUR; // Wed May 27 12:35:20 +0800 2015 public static String getFormatTime(String timeStr) { StringBuilder sb = new StringBuilder(); try { if (!TextUtils.isEmpty(timeStr)) { String[] timeArr = timeStr.split("\\s+"); String year = timeArr[timeArr.length - 1]; String date = getMonthNum(timeArr[1]) + LINE + timeArr[2]; String time = timeArr[3].substring(0, 5); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date d = simpleDateFormat.parse(year + LINE + date + " " + time); int y = Integer.valueOf(year); int currentYear = Calendar.getInstance().get(Calendar.YEAR); if (currentYear != y) { // 如果不是当前年份 sb.append(currentYear); } else { // 如果是本年 long diff = d.getTime() - System.currentTimeMillis(); if (diff > DAY * 2) { sb.append(date); } else if (diff > DAY) { sb.append(App.getAppContext().getResources().getString(R.string.yesterday)) .append(" ") .append(time); } else if (diff > HOUR) { long hours = diff / HOUR; String hourAgo = String.format( App.getAppContext().getResources().getString(R.string.hour_ago), hours); sb.append(hourAgo); } else { sb.append(time); } } } return sb.toString(); } catch (Exception e) { return null; } } private static String getMonthNum(String monEn) { String mothNum = "00"; switch (monEn) { case "Jan": mothNum = "01"; break; case "Feb": mothNum = "02"; break; case "Mar": mothNum = "03"; break; case "Apr": mothNum = "04"; break; case "May": mothNum = "05"; break; case "Jun": mothNum = "06"; break; case "Jul": mothNum = "07"; break; case "Aug": mothNum = "08"; break; case "Sep": mothNum = "09"; break; case "Oct": mothNum = "10"; break; case "Nov": mothNum = "11"; break; case "Dec": mothNum = "12"; break; } return mothNum; } }