From d98e2b4b6ecc3da47030a8b188944f27f1e40662 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 05 八月 2025 14:29:42 +0800 Subject: [PATCH] 修改bug --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java | 1085 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,085 insertions(+), 0 deletions(-) diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java index 9519160..e15d5a7 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java @@ -12,7 +12,1092 @@ */ @Component public class DateUtil { + private static TimeZone tz = TimeZone.getTimeZone("GMT+8"); + + // private static TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); + + public static boolean hourMinuteBetween(String nowDate, String startDate, String endDate) throws Exception{ + + SimpleDateFormat format = new SimpleDateFormat("HH:mm"); + + Date now = format.parse(nowDate); + Date start = format.parse(startDate); + Date end = format.parse(endDate); + + long nowTime = now.getTime(); + long startTime = start.getTime(); + long endTime = end.getTime(); + + return nowTime >= startTime && nowTime <= endTime; + } + + /** + * 得到系统日期 + * + * @return + */ + public static Date getDate() { + TimeZone.setDefault(tz); + return new Date(); + } + + /** + * 获取当然凌晨的时间 + * + * @return Date + */ + public static Date getZero() { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + return calendar.getTime(); + } + + /** + * 判断日期是否在from,to之内 "yyyy-MM-dd" 格式 + * + * @param time + * 指定日期 + * @param from + * 开始日期 + * @param to + * 结束日期 + * @return true 在之间 false 不在之间 + */ + public static boolean belongCalendar(Date time, Date from, Date to) { + Calendar date = Calendar.getInstance(); + date.setTime(time); + + Calendar after = Calendar.getInstance(); + after.setTime(from); + + Calendar before = Calendar.getInstance(); + before.setTime(to); + + if ((date.after(after) && date.before(before)) || (time.compareTo(from) == 0 || time.compareTo(to) == 0)) { + return true; + } else { + return false; + } + } + + /** + * 两个时间之差 + * + * @param startTime + * @param endTime + * @param format + * @return + * @throws ParseException + */ + public static String dateDiff(String startTime, String endTime, String format) throws ParseException { + // 按照传入的格式生成一个simpledateformate对象 + SimpleDateFormat sd = new SimpleDateFormat(format); + long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数 + long nh = 1000 * 60 * 60;// 一小时的毫秒数 + long nm = 1000 * 60;// 一分钟的毫秒数 + long ns = 1000;// 一秒钟的毫秒数 + long diff; + long day = 0; + long hour = 0; + long min = 0; + long sec = 0; + // long time=0; + String strTime = ""; + // 获得两个时间的毫秒时间差异 + diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime(); + day = diff / nd;// 计算差多少天 + hour = diff % nd / nh + day * 24;// 计算差多少小时 + min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟 + sec = diff % nd % nh % nm / ns;// 计算差多少秒 + // 输出结果 + /* + * System.out.println("时间相差:" + day + "天" + (hour - day * 24) + "小时" + + * (min - day * 24 * 60) + "分钟" + sec + "秒。"); + * System.out.println("hour=" + hour + ",min=" + min); + */ + if (day == 1) { + strTime = "昨天"; + } else if (day > 1) { + // strTime=day+"天前"; + strTime = startTime.substring(0, 10); + } else if (hour >= 1 && hour < 24) { + strTime = hour + "小时前"; + } else { + if (min == 0) { + strTime = sec + "秒钟前"; + } else { + strTime = min + "分钟前"; + } + + } + // if (str.equalsIgnoreCase("h")) { + // return hour; + // } else { + // return min; + // } + + // if (str.equalsIgnoreCase("h")) { + // return hour; + // } else { + // return min; + // } + return strTime; + } + + /** + * 得到系统Calendar日期 + * + * @return + */ + public static Calendar getCalendar() { + TimeZone.setDefault(tz); + Calendar cal = Calendar.getInstance(); + return cal; + } + + /** + * 获取当前时间 + * + * @return + */ + public static long getMillisecond() { + long millisecond = 0; + TimeZone.setDefault(tz); + Calendar cal = Calendar.getInstance(); + millisecond = cal.getTimeInMillis(); + return millisecond; + } + + /** + * 获取本月1号的时间戳 + * + * @return + */ + public static long getMillisecond_MONTH() { + long millisecond = 0; + TimeZone.setDefault(tz); + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.DAY_OF_MONTH, 1); + millisecond = cal.getTimeInMillis(); + return millisecond; + } + + /** + * 获取上个月1号的时间戳 + * + * @return + */ + public static long getMillisecond_FRONTMONTH() { + long millisecond = 0; + Calendar cal = getCalendar(); + cal.set(Calendar.DAY_OF_MONTH, 1); + cal.set(Calendar.MONTH, Calendar.MONTH - 2); + millisecond = cal.getTimeInMillis(); + return millisecond; + } + + /** + * 获取当前毫秒数 + * + * @return long + */ + public static long getCurMilli() { + long millisecond = 0; + Calendar cal = Calendar.getInstance(); + millisecond = cal.getTimeInMillis(); + return millisecond; + } + + /** + * 日期转毫秒 + * + * @param date + * @return + */ + public static long getMillisecond(Date date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if (!"".equals(date)) { + newDate = sdf.format(date); + } else { + newDate = sdf.format(DateUtil.getDate()); + } + long millisecond = 0; + try { + millisecond = sdf.parse(newDate).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 日期转毫秒(加24小时,yyyy-MM-dd HH:mm:ss) + * + * @param date + * @return + */ + public static long getMillisecond_24h(Date date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if (!"".equals(date)) { + newDate = sdf.format(date); + } else { + newDate = sdf.format(DateUtil.getDate()); + } + long millisecond = 24 * 3600 * 1000; + try { + millisecond += sdf.parse(newDate).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 日期转毫秒(加N年) + * + * @param date + * @return + */ + public static long getMillisecond_year(String date, Integer year) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if ("".equals(date)) { + newDate = sdf.format(DateUtil.getDate()); + } else { + newDate = getDateTime(Long.parseLong(date)); + } + Date dt = null; + try { + dt = sdf.parse(newDate); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.YEAR, year); + Date dt1 = rightNow.getTime(); + return dt1.getTime(); + } + + /** + * 日期转毫秒(加N天) + * + * @param date + * 毫秒字符串 + * @return + */ + public static Date getMillisecond_day(String date, Integer day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if ("".equals(date)) { + newDate = sdf.format(DateUtil.getDate()); + } else { + newDate = date; + } + Date dt = null; + try { + dt = sdf.parse(newDate); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.DATE, day); + Date dt1 = rightNow.getTime(); + Date dates = new Date(dt1.getTime()); + return dates; + } + + /** + * 日期转毫秒(加N月) + * + * @param date + * @return + */ + public static long getMillisecond_month(String date, Integer day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if ("".equals(date)) { + newDate = sdf.format(DateUtil.getDate()); + } else { + newDate = getDateTime(Long.parseLong(date)); + } + Date dt = null; + try { + dt = sdf.parse(newDate); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.MONTH, day); + Date dt1 = rightNow.getTime(); + return dt1.getTime(); + } + + /** + * 日期转毫秒(加分钟) + * + * @param date + * @return + */ + public static long getMillisecond_fz(String date, Integer day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if ("".equals(date)) { + newDate = sdf.format(DateUtil.getDate()); + } else { + newDate = getDateTime(Long.parseLong(date)); + } + Date dt = null; + try { + dt = sdf.parse(newDate); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.MINUTE, day); + Date dt1 = rightNow.getTime(); + return dt1.getTime(); + } + + public static Date getMillisecond_fz1(String date, Integer day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date dt = null; + try { + dt = sdf.parse(date); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.MINUTE, day); + Date dt1 = rightNow.getTime(); + return dt1; + } + + /** + * 字符串日期转毫秒 + * + * @param date + * @return + */ + public static long getMillisecond_str(String date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if ("".equals(date)) { + date = sdf.format(DateUtil.getDate()); + } + long millisecond = 0; + try { + millisecond = sdf.parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 字符串日期转毫秒 + * + * @param date + * @return + */ + public static long getMillisecond_strYmd(String date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if ("".equals(date)) { + date = sdf.format(DateUtil.getDate()); + } + long millisecond = 0; + try { + millisecond = sdf.parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 字符串日期转Date + * + * @param string + * @return date + * @throws ParseException + */ + public static Date getStrToDate(String dateString) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date = sdf.parse(dateString); + return date; + } + + /** + * 字符串日期转Date + * + * @param date + * @return + */ + public static Date getDate_str(String dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + sdf.setTimeZone(tz); + if ("".equals(dateStr)) { + dateStr = sdf.format(DateUtil.getDate()); + } + Date date = null; + try { + date = sdf.parse(dateStr); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 字符串日期转Date yyyy-MM-dd HH:mm + * + * @param date + * @return + */ + public static Date getDate_str2(String dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + sdf.setTimeZone(tz); + if ("".equals(dateStr)) { + dateStr = sdf.format(DateUtil.getDate()); + } + Date date = null; + try { + date = sdf.parse(dateStr); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 字符串日期转Date yyyy-MM-dd HH:mm:ss + * + * @param date + * @return + */ + public static Date getDate_str3(String dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + sdf.setTimeZone(tz); + if ("".equals(dateStr)) { + dateStr = sdf.format(DateUtil.getDate()); + } + Date date = null; + try { + date = sdf.parse(dateStr); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 字符串日期转Date + * + * @param date + * @return + */ + public static Date getDate_strYMd(Long dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (dateStr == null) { + dateStr = DateUtil.getCurMilli(); + } + Date date = null; + try { + date = sdf.parse(sdf.format(new Date(dateStr))); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 毫秒转Date + * + * @param date + * @return + */ + public static Date getDate_strYMdHms(Long dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (dateStr == null) { + dateStr = DateUtil.getCurMilli(); + } + Date date = null; + try { + date = sdf.parse(sdf.format(new Date(dateStr))); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 字符串日期转Date + * + * @param date + * @return + */ + public static Date getDate_strYMdHm(Long dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + if (dateStr == null) { + dateStr = DateUtil.getCurMilli(); + } + Date date = null; + try { + date = sdf.parse(sdf.format(new Date(dateStr))); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + /** + * 字符串日期转毫秒 + * + * @param date + * @return + */ + public static long getMillisecond_strDmy(String date) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + if ("".equals(date)) { + date = sdf.format(DateUtil.getDate()); + } + long millisecond = 0; + try { + millisecond = sdf.parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 字符串日期转毫秒转毫秒(加24小时) + * + * @param date + * @return + */ + public static long getMillisecond_str_24h(String date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if ("".equals(date)) { + date = sdf.format(DateUtil.getDate()); + } + long millisecond = 24 * 3600 * 1000; + try { + millisecond += sdf.parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 字符串日期转毫秒转毫秒(加24小时) + * + * @param date + * @return + */ + public static long getMillisecond_strYmd_24h(String date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if ("".equals(date)) { + date = sdf.format(DateUtil.getDate()); + } + long millisecond = 24 * 3600 * 1000; + try { + millisecond += sdf.parse(date).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return millisecond; + } + + /** + * 毫秒转日期 + * + * @param millisecond + * @return + */ + public static String getDate(long millisecond) { + if (millisecond == 0) { + millisecond = getCurMilli(); + } + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return dateformat.format(calendar.getTime()); + } + + /** + * 转换为指定格式的时间 + * + * @return Date + */ + public static Date getDate(String date, String pattern) { + SimpleDateFormat format = new SimpleDateFormat(pattern); + Date d = null; + try { + d = format.parse(date); + } catch (ParseException ex) { + return null; + } + return d; + } + + /** + * 毫秒转日期 + * + * @param millisecond + * @return + */ + public static String getDate_HH(long millisecond) { + if (millisecond == 0) { + millisecond = getCurMilli(); + } + SimpleDateFormat dateformat = new SimpleDateFormat("HH"); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return dateformat.format(calendar.getTime()); + } + + /** + * 毫秒转日期时间 + * + * @param millisecond + * @return + */ + public static String getDateTime(long millisecond) { + if (millisecond == 0) { + millisecond = getCurMilli(); + } + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return dateformat.format(calendar.getTime()); + } + + /** + * 毫秒转年月日 + * + * @param millisecond + * @return + */ + public static String getDateYMD(long millisecond) { + if (millisecond == 0) { + millisecond = getCurMilli(); + } + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy年MM月dd日"); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return dateformat.format(calendar.getTime()); + } + + /** + * 两日期相差毫秒 + * + * @param startDate + * @param endDate + * @return + */ + public static long getMinusMillisecond(Date startDate, Date endDate) { + long startMillisecond = getMillisecond(startDate); + long endMillisecond = getMillisecond(endDate); + long minusMillisecond = endMillisecond - startMillisecond; + if (minusMillisecond < 0) { + minusMillisecond = 0; + } + return minusMillisecond; + } + + /** + * 两日期相差天数 + * + * @param startDate + * @param endDate + * @return + */ + public static long getMinusDay(Date startDate, Date endDate) { + long startMillisecond = getMillisecond(startDate); + long endMillisecond = getMillisecond(endDate); + long minusMillisecond = endMillisecond - startMillisecond; + long day = 0; + if (minusMillisecond < 0) { + day = 0; + } else { + day = minusMillisecond / (24 * 3600 * 1000); + } + return day; + } + + /** + * 前N天毫秒 + * + * @param day + * @return + */ + public static long getRetreatDay_millisecond(int day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + long nowMillisecond = 0; + try { + nowMillisecond = sdf.parse(sdf.format(DateUtil.getDate())).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + nowMillisecond += 24 * 3600 * 1000; + long retreatMillisecond = 24 * 3600 * 1000 * day; + return nowMillisecond - retreatMillisecond; + } + + /** + * 前N天时间 + * + * @param day + * @return + */ + public static String getRetreatDay_millisecond1(int day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + long nowMillisecond = 0; + try { + nowMillisecond = sdf.parse(sdf.format(DateUtil.getDate())).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + nowMillisecond += 24 * 3600 * 1000; + long retreatMillisecond = 24 * 3600 * 1000 * day; + long s = nowMillisecond - retreatMillisecond; + Date date = new Date(s); + String res = sdf.format(date); + return res; + } + + // 当前时间前30天 + public static String getRetreatDay_millisecond2() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date today = new Date(); + String endDate = sdf.format(today);// 当前日期 + // 获取三十天前日期 + Calendar theCa = Calendar.getInstance(); + theCa.setTime(today); + theCa.add(theCa.DATE, -30);// 最后一个数字30可改,30天的意思 + Date start = theCa.getTime(); + String startDate = sdf.format(start);// 三十天之前日期 + return startDate; + } + + /** + * 日期转秒 + * + * @param date + * @return + */ + public static long getDecond(Date date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if (!"".equals(date)) { + newDate = sdf.format(date); + } else { + newDate = sdf.format(DateUtil.getDate()); + } + long second = 0; + try { + second = sdf.parse(newDate).getTime() / 1000; + } catch (ParseException e) { + e.printStackTrace(); + } + return second; + } + + /** + * 日期转String + * + * @param date + * @return + * @throws ParseException + */ + public static String getDateToString(Date date) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String newDate = sdf.format(date); + long millisecond = sdf.parse(newDate).getTime(); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return sdf.format(calendar.getTime()); + } + + public static String getDateToString(Date date,String pattern) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + String newDate = sdf.format(date); + long millisecond = sdf.parse(newDate).getTime(); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return sdf.format(calendar.getTime()); + } + + /** + * 毫秒转星期XX + * + * @param millisecond + * @return + */ + public static int getDate_week(Long millisecond) { + if (millisecond == null) { + millisecond = getCurMilli(); + } + Calendar cal = getCalendar(); + cal.setTimeInMillis(millisecond); + return cal.get(Calendar.DAY_OF_WEEK) - 1; + + } + + /** + * 获取当前系统时间已yyyy-MM-dd HH:mm:ss格式化的字符串 + */ + public static String nowStr() { + + SimpleDateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); + return dateFormat.format(getDate()); + } + + /** + * + * 获取之前几天日期 + * + * @param pattern + * yyyy-MM-dd(默认) + * @param few + * 之前几天 + */ + public static String beforeFewDayStr(String pattern, Integer few) { + + if (pattern == null || "".equals(pattern)) { + pattern = "yyyy-MM-dd"; + } + Calendar c = getCalendar(); + c.add(Calendar.DATE, -few); + return new SimpleDateFormat(pattern).format(c.getTime()); + } + + + /** + * 得到几天后的时间 + * + * @param d + * @param day + * @return + */ + public static Date getDateAfter(Date d, int day) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar now = Calendar.getInstance(); + now.setTime(d); + now.set(Calendar.DATE, now.get(Calendar.DATE) - day);//+后 -前 + return now.getTime(); + } + + + /** + * 获取今天日期 + * + * @param pattern + * yyyy-MM-dd(默认) + */ + public static String todayStr(String pattern) { + + if (pattern == null || "".equals(pattern)) { + pattern = "yyyy-MM-dd"; + } + return new SimpleDateFormat(pattern).format(getDate()); + } + + /** + * 获取当前系统时间戳字符串 + */ + public static String nowDateLongStr() { + + return getDate().getTime() + ""; + } + + /** + * 获取当前系统时间 + * + * @return + */ + public static Date now() { + + return getDate(); + } + /*public static void main(String[] args) throws ParseException { + // 打印测试日期包含 + Date time1 = getDate_str("2017-3-11"); + Date time2 = getDate_str("2017-3-15"); + Date time3 = getDate_str("2017-3-17"); + Date time4 = getDate_str("2017-3-12"); + Date time5 = getDate_str("2017-3-16"); + Date from = getDate_str("2017-3-12"); + Date to = getDate_str("2017-3-16"); + System.out.println(belongCalendar(time1, from, to)); + System.out.println(belongCalendar(time2, from, to)); + System.out.println(belongCalendar(time3, from, to)); + System.out.println(belongCalendar(time4, from, to)); + System.out.println(belongCalendar(time5, from, to)); + System.out.println(nowStr()); + + } +*/ + /** + * 把日期往后增加一天. 正数往后推,负数往前移动 + * + * @param day + * @return + */ + public static String getString(int day) { + Date date = new Date();// 取时间 + Calendar calendar = new GregorianCalendar(); + calendar.setTime(date); + calendar.add(calendar.DATE, day);// 把日期往后增加一天.整数往后推,负数往前移动 + date = calendar.getTime(); // 这个时间就是日期往后推一天的结果 + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String dateString = formatter.format(date); + return dateString; + } + + /** + * 根据当前日期获得所在周的日期区间(周一和周日日期) + * + * @return + * @author zhaoxuepu + * @throws ParseException + */ + public static String getTimeInterval(Date date) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 + int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 + if (1 == dayWeek) { + cal.add(Calendar.DAY_OF_MONTH, -1); + } + // System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期 + // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 + cal.setFirstDayOfWeek(Calendar.MONDAY); + // 获得当前日期是一个星期的第几天 + int day = cal.get(Calendar.DAY_OF_WEEK); + // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 + cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day); + String imptimeBegin = sdf.format(cal.getTime()); + // System.out.println("所在周星期一的日期:" + imptimeBegin); + cal.add(Calendar.DATE, 6); + String imptimeEnd = sdf.format(cal.getTime()); + // System.out.println("所在周星期日的日期:" + imptimeEnd); + return imptimeBegin + "," + imptimeEnd; + } + + /** + * 根据当前日期获得上周的日期区间(上周周一和周日日期) + * + * @return + * @author zhaoxuepu + */ + public static String getLastTimeInterval() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar1 = Calendar.getInstance(); + Calendar calendar2 = Calendar.getInstance(); + int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1; + int offset1 = 1 - dayOfWeek; + int offset2 = 7 - dayOfWeek; + calendar1.add(Calendar.DATE, offset1 - 7); + calendar2.add(Calendar.DATE, offset2 - 7); + // System.out.println(sdf.format(calendar1.getTime()));// last Monday + String lastBeginDate = sdf.format(calendar1.getTime()); + // System.out.println(sdf.format(calendar2.getTime()));// last Sunday + String lastEndDate = sdf.format(calendar2.getTime()); + return lastBeginDate + "," + lastEndDate; + } + + public static String DateYUE() { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天 + String first = format.format(c.getTime()); + + // 获取当前月最后一天 + Calendar ca = Calendar.getInstance(); + ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); + String last = format.format(ca.getTime()); + return first + "," + last; + } + + public static String getBeforeFirstMonthdate() { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + Calendar calendar1 = Calendar.getInstance(); + calendar.add(Calendar.MONTH, -1); + calendar.set(Calendar.DAY_OF_MONTH, 1); + + int month = calendar1.get(Calendar.MONTH); + calendar1.set(Calendar.MONTH, month - 1); + calendar1.set(Calendar.DAY_OF_MONTH, calendar1.getActualMaximum(Calendar.DAY_OF_MONTH)); + String str = format.format(calendar.getTime()); + String str1 = format.format(calendar1.getTime()); + + return str + "," + str1; + } + + /** + * 获取某年第一天和最后一天日期 + * + * @param year + * 年份 + * @return Date + */ + + public static String getYearFirst(int year) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + + Calendar calendar1 = Calendar.getInstance(); + calendar1.clear(); + calendar1.set(Calendar.YEAR, year); + calendar1.roll(Calendar.DAY_OF_YEAR, -1); + + String str = format.format(calendar.getTime()); + String str1 = format.format(calendar1.getTime()); + + return str + "," + str1; + } + + public static Date addDate(Date date,Integer day) throws ParseException { + long time = date.getTime(); // 得到指定日期的毫秒数 + day = day*24*60*60*1000; // 要加上的天数转换成毫秒数 + time+=day; // 相加得到新的毫秒数 + return new Date(time); // 将毫秒数转换成日期 + } + + // 获取一天开始和结束 + public static String getDay() { + Date dBefore = new Date(); + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式 + String defaultStartDate = sdf.format(dBefore); //格式化前一天 + defaultStartDate = defaultStartDate+" 00:00:00"; + String defaultEndDate = defaultStartDate.substring(0,10)+" 23:59:59"; + + return defaultStartDate + "," + defaultEndDate; + } + + + + public static void main(String[] args){ + System.out.println(DateUtil.getDate("2020-05-28", "yyyy-MM-dd").getTime()); + System.out.println(new Date().getTime()); + } /** * 获取给定日期天的开始时间点或结束时间点 -- Gitblit v1.7.1