package com.fzzy.api.utils; import org.apache.commons.lang.time.DateUtils; import java.util.Calendar; import java.util.Date; /** * 时间相关工具类 * * @author jiazx */ public class DateUtil { /** * 根据当前时间获取只有 yyyy-MM-dd的时间 * * @param date * @return */ public static Date getCurZero(Date date) { //TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); date = DateUtils.setHours(date, 0); date = DateUtils.setMinutes(date, 0); date = DateUtils.setSeconds(date, 0); date = DateUtils.setMilliseconds(date, 0); return date; } /** * 获取当前时间下一天的零点零分零秒 * * @param date * @return */ public static Date getNextZero(Date date) { //TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); date = DateUtils.addDays(date, 1); date = DateUtils.setHours(date, 0); date = DateUtils.setMinutes(date, 0); date = DateUtils.setSeconds(date, 0); date = DateUtils.setMilliseconds(date, 0); return date; } /** * 获取当前日期所在月的第一天,数据为::00:00:00 * * @param date * @return */ public static Date getMonthFirst(Date date) { if (null == date) date = new Date(); date = DateUtils.setDays(date, 1); date = DateUtils.setHours(date, 0); date = DateUtils.setMinutes(date, 0); date = DateUtils.setSeconds(date, 0); date = DateUtils.setMilliseconds(date, 0); return date; } /** * 获取当前年第一天 * * @param date * @return */ public static Date getYearFirst(Date date) { if (null == date) date = new Date(); Calendar currCal = Calendar.getInstance(); currCal.setTime(date); int currentYear = currCal.get(Calendar.YEAR); Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, currentYear); Date currYearFirst = calendar.getTime(); return currYearFirst; } /** * 获取当前时间的下个月1号 * * @param date * @return */ public static Date getNextMonthFirst(Date date) { if (null == date) date = new Date(); date = DateUtils.addMonths(date, 1); date = DateUtils.setDays(date, 1); date = DateUtils.setHours(date, 0); date = DateUtils.setMinutes(date, 0); date = DateUtils.setSeconds(date, 0); date = DateUtils.setMilliseconds(date, 0); return date; } /** * 获取当前时间的上个月1号 * * @param date * @return */ public static Date getPreMonthFirst(Date date) { if (null == date) date = new Date(); date = DateUtils.addMonths(date, -1); date = DateUtils.setDays(date, 1); date = DateUtils.setHours(date, 0); date = DateUtils.setMinutes(date, 0); date = DateUtils.setSeconds(date, 0); date = DateUtils.setMilliseconds(date, 0); return date; } /** * 时间,根据天数 添加几天,或者减去几天 * * @param date 当前时间 * @param num 正数或者负数 * @return */ public static Date getNewByDay(Date date, int num) { if (null == date) date = new Date(); date = DateUtils.addDays(date, num); date = DateUtils.setHours(date, 0); date = DateUtils.setMinutes(date, 0); date = DateUtils.setSeconds(date, 0); date = DateUtils.setMilliseconds(date, 0); return date; } /** * 时间,根据天数 添加几分钟,或者减去几分 * * @param date 当前时间 * @param num 正数或者负数 * @return */ public static Date getNewByMinute(Date date, int num) { if (null == date) date = new Date(); date = DateUtils.addMinutes(date, num); date = DateUtils.setHours(date, 0); date = DateUtils.setMinutes(date, 0); date = DateUtils.setSeconds(date, 0); date = DateUtils.setMilliseconds(date, 0); return date; } /** * 获取某年第一天日期 * * @param year 年份 * @return Date */ public static Date getCurrYearFirst(int year) { Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); Date currYearFirst = calendar.getTime(); return currYearFirst; } /** * 获取次年第一天 0点 * * @param year 年份 * @return Date */ public static Date getNextYearFirst(int year) { Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); calendar.roll(Calendar.DAY_OF_YEAR, -1); Date currYearLast = calendar.getTime(); currYearLast = DateUtils.addDays(currYearLast, 1); return currYearLast; } /** * 计算时间1与时间2直接的分钟数, * * @param begin * @param end * @return */ public static long difMin(Date begin, Date end) { long between = (end.getTime() - begin.getTime()) / 1000;//除以1000是为了转换成秒 //long day1 = between / (24 * 3600); // long hour1 = between % (24 * 3600) / 3600; long minute1 = between % 3600 / 60; // long second1 = between % 60 / 60; return minute1; } /** * 计算时间1与时间2直接的天数, * * @param begin * @param end * @return */ public static int difDay(Date begin, Date end) { return (int) ((end.getTime() - begin.getTime()) / (1000 * 3600 * 24)); } /** * 获取当前时间的 小时,时间从1-24 * * @param date * @return */ public static int getHour(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.HOUR_OF_DAY); } /** * 获取当前时间的 分钟 时间从0 -59 * * @param date * @return */ public static int getMinute(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.MINUTE); } /** * 获取当前时间到第二天凌晨的时间差秒数 * * @return */ public static Long getNowToNextDaySeconds() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR, 1); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.MILLISECOND, 0); return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000; } public static void main(String[] args) { System.out.println(getMinute(new Date())); } }