final static long EIGHT_HOURS = 8 * 60 * 60 * 1000; public final static long ONE_HOUR = 60 * 60 * 1000; public final static long DAY = 24 * 60 * 60 * 1000; public final static long WEEK = 7 * 24 * 60 * 60 * 1000; public final static long ONE_MINUTE = 60 * 1000; /** * 计算两个日期之间相差的天数 * * @param startTime * 开始的时间 * @param currentTime * 当前的时间 * @return 相差天数 * @throws ParseException */ public static int daysBetween(Date startTime, Date currentTime) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); startTime = sdf.parse(sdf.format(startTime)); currentTime = sdf.parse(sdf.format(currentTime)); Calendar cal = Calendar.getInstance(); cal.setTime(startTime); long time1 = cal.getTimeInMillis(); cal.setTime(currentTime); long time2 = cal.getTimeInMillis(); long between_days = (time2 - time1) / (1000 * 3600 * 24); return Integer.parseInt(String.valueOf(between_days)); } /** * 对时间进行天加减运算 * * @param time 要被加减的时间 * @param num 被加减的天数(正为加,负为减) * @return */ public static long addDate(long time, int num) { Calendar cal = Calendar.getInstance(); cal.setTime(new Date(time)); cal.add(Calendar.DATE, num); return cal.getTime().getTime(); } /** * 对小时加减运算 * * @param date * @param num * @return */ public static long addHour(long time, int num) { Calendar cal = Calendar.getInstance(); cal.setTime(new Date(time)); cal.add(Calendar.HOUR_OF_DAY, num); return cal.getTime().getTime(); } /** * 对分钟加减运算 * * @param date * @param num * @return */ public static long addMinute(long time, int num) { Calendar cal = Calendar.getInstance(); cal.setTime(new Date(time)); cal.add(Calendar.MINUTE, num); return cal.getTime().getTime(); } /** * 获取当天0点的时间戳 * * @param * @return */ public static long getTodayZeroHour(long time) { SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); try { return formatter.parse(formatter.format(new Date(time))).getTime(); } catch (ParseException e) { e.printStackTrace(); return 0; } } /** * 根据时间获取当月多少天 * * @param date * @param num * @return */ public static int getDayByCurMon(long time) { int day = 0; try { Date date = new Date(time); Calendar cal = Calendar.getInstance(); cal.setTime(date); day = cal.getActualMaximum(Calendar.DAY_OF_MONTH); return day; } catch (Exception e) { e.printStackTrace(); } return day; } //获取当前时间所在周的开始日期 public static Date getFirstDayOfWeek(Date date) { Calendar c = Calendar.getInstance(); c.setFirstDayOfWeek(Calendar.MONDAY); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday return getDayStart(c).getTime(); } // 获取当前时间所在周的结束日期 public static Date getLastDayOfWeek(Date date) { Calendar c = Calendar.getInstance(); c.setFirstDayOfWeek(Calendar.MONDAY); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday return getDayEnd(c).getTime(); }