package ren.solid.library.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /** * Created by _SOLID * Date:2016/5/10 * Time:9:58 */ public class DateUtils { public static SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); public static SimpleDateFormat formatDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); /** * 格式化日期 * * @param date * @return 年月日 */ public static String formatDate(Date date) { return formatDate.format(date); } /** * 格式化日期 * * @param date * @return 年月日 时分秒 */ public static String formatDateTime(Date date) { return formatDateTime.format(date); } /** * 判断是不是今天 * * @param date * @return */ public static boolean isToday(Date date) { Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); int day = calendar.get(Calendar.DAY_OF_MONTH); calendar.setTime(date); return year == calendar.get(Calendar.YEAR) && month == calendar.get(Calendar.MONTH) && day == calendar.get(Calendar.DAY_OF_MONTH); } /** * 将时间戳解析成日期 * * @param timeInMillis * @return 年-月-日 */ public static String parseDate(long timeInMillis) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timeInMillis); Date date = calendar.getTime(); return formatDate(date); } /** * 将时间戳解析成日期 * * @param timeInMillis * @return 年-月-日 时:分:秒 */ public static String parseDateTime(long timeInMillis) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timeInMillis); Date date = calendar.getTime(); return formatDateTime(date); } /** * 解析日期 * * @param date 年-月-日 * @return */ public static Date parseDate(String date) { Date mDate = null; try { mDate = formatDate.parse(date); } catch (ParseException e) { e.printStackTrace(); } return mDate; } /** * 解析日期 * * @param datetime * @return */ public static Date parseDateTime(String datetime) { Date mDate = null; try { mDate = formatDateTime.parse(datetime); } catch (ParseException e) { e.printStackTrace(); } return mDate; } /** * 以友好的方式显示时间 * * @param sdate * @return */ public static String friendlyTime(String sdate) { Date time = parseDateTime(sdate); if (time == null) { return "Unknown"; } String ftime = ""; Calendar cal = Calendar.getInstance(); // 判断是否是同一天 String curDate = formatDate.format(cal.getTime()); String paramDate = formatDate.format(time); if (curDate.equals(paramDate)) { int hour = (int) ((cal.getTimeInMillis() - time.getTime()) / 3600000); if (hour == 0) ftime = Math.max( (cal.getTimeInMillis() - time.getTime()) / 60000, 1) + "分钟前"; else ftime = hour + "小时前"; return ftime; } long lt = time.getTime() / 86400000; long ct = cal.getTimeInMillis() / 86400000; int days = (int) (ct - lt); if (days == 0) { int hour = (int) ((cal.getTimeInMillis() - time.getTime()) / 3600000); if (hour == 0) ftime = Math.max( (cal.getTimeInMillis() - time.getTime()) / 60000, 1) + "分钟前"; else ftime = hour + "小时前"; } else if (days == 1) { ftime = "昨天"; } else if (days == 2) { ftime = "前天"; } else if (days > 2 && days <= 10) { ftime = days + "天前"; } else if (days > 10) { ftime = formatDate.format(time); } return ftime; } }