package com.java2nb.common.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.text.SimpleDateFormat; import java.util.Date; /** * 日期处理 */ public class DateUtils { private final static Logger logger = LoggerFactory.getLogger(DateUtils.class); public final static String YEAR_PATTERN = "yyyy"; public final static String MONTH_PATTERN = "MM"; public final static String DAY_PATTERN = "dd"; /** * 时间格式(yyyy-MM-dd) */ public final static String DATE_PATTERN = "yyyy-MM-dd"; /** * 时间格式(yyyy-MM-dd HH:mm:ss) */ public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; public static String format(Date date) { return format(date, DATE_PATTERN); } public static String format(Date date, String pattern) { if (date != null) { SimpleDateFormat df = new SimpleDateFormat(pattern); return df.format(date); } return null; } /** * 计算距离现在多久,非精确 * * @param date * @return */ public static String getTimeBefore(Date date) { Date now = new Date(); long l = now.getTime() - date.getTime(); long day = l / (24 * 60 * 60 * 1000); long hour = (l / (60 * 60 * 1000) - day * 24); long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60); long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); String r = ""; if (day > 0) { r += day + "天"; } else if (hour > 0) { r += hour + "小时"; } else if (min > 0) { r += min + "分"; } else if (s > 0) { r += s + "秒"; } r += "前"; return r; } /** * 计算距离现在多久,精确 * * @param date * @return */ public static String getTimeBeforeAccurate(Date date) { Date now = new Date(); long l = now.getTime() - date.getTime(); long day = l / (24 * 60 * 60 * 1000); long hour = (l / (60 * 60 * 1000) - day * 24); long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60); long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); String r = ""; if (day > 0) { r += day + "天"; } if (hour > 0) { r += hour + "小时"; } if (min > 0) { r += min + "分"; } if (s > 0) { r += s + "秒"; } r += "前"; return r; } }