package hillfly.wifichat.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import android.content.Context; /** * @fileName DateUtils.java * @package szu.wifichat.android.util * @description 时间日期工具类 * @author _Hill3 */ public class DateUtils { public static String FORMATTIMESTR = "yyyy年MM月dd日 HH:mm:ss"; // 时间格式化格式 /** * 获取yyyyMMdd格式日期 * * @param time * @return */ public static Date getDate(String time) { Date date = new Date(System.currentTimeMillis()); SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); try { date = format.parse(time); } catch (ParseException e) { e.printStackTrace(); } return date; } public static String formatDate(Context context, long date) { @SuppressWarnings("deprecation") int format_flags = android.text.format.DateUtils.FORMAT_NO_NOON_MIDNIGHT | android.text.format.DateUtils.FORMAT_ABBREV_ALL | android.text.format.DateUtils.FORMAT_CAP_AMPM | android.text.format.DateUtils.FORMAT_SHOW_DATE | android.text.format.DateUtils.FORMAT_SHOW_DATE | android.text.format.DateUtils.FORMAT_SHOW_TIME; return android.text.format.DateUtils.formatDateTime(context, date, format_flags); } /** * 返回此时时间 * * @return String: XXX年XX月XX日 XX:XX:XX */ public static String getNowtime() { return new SimpleDateFormat(FORMATTIMESTR).format(new Date()); } /** * 格式化输出指定时间点与现在的差 * * @param paramTime * 指定的时间点 * @return 格式化后的时间差,类似 X秒前、X小时前、X年前 */ public static String getBetweentime(String paramTime) { String returnStr = null; SimpleDateFormat dateFormat = new SimpleDateFormat(FORMATTIMESTR); try { Date nowData = new Date(); Date mDate = dateFormat.parse(paramTime); long betweenForSec = Math.abs(mDate.getTime() - nowData.getTime()) / 1000; // 秒 if (betweenForSec < 60) { returnStr = betweenForSec + "秒前"; } else if (betweenForSec < (60 * 60)) { returnStr = betweenForSec / 60 + "分钟前"; } else if (betweenForSec < (60 * 60 * 24)) { returnStr = betweenForSec / (60 * 60) + "小时前"; } else if (betweenForSec < (60 * 60 * 24 * 30)) { returnStr = betweenForSec / (60 * 60 * 24) + "天前"; } else if (betweenForSec < (60 * 60 * 24 * 30 * 12)) { returnStr = betweenForSec / (60 * 60 * 24 * 30) + "个月前"; } else returnStr = betweenForSec / (60 * 60 * 24 * 30 * 12) + "年前"; } catch (ParseException e) { returnStr = "TimeError"; // 错误提示 } return returnStr; } }