package com.zcloud.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * 说明:日期处理 * 作者:luoxiaobao * 官网:www.qdkjchina.com */ public class DateUtil { private final static SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy"); private final static SimpleDateFormat sdfMonth = new SimpleDateFormat("MM"); private final static SimpleDateFormat sdfOnlyDay = new SimpleDateFormat("dd"); private final static SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd"); private final static SimpleDateFormat sdfMDay = new SimpleDateFormat("yyyy-M-d"); private final static SimpleDateFormat sdfDays = new SimpleDateFormat("yyyyMMdd"); private final static SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private final static SimpleDateFormat sdfTimes = new SimpleDateFormat("yyyyMMddHHmmss"); /** * 获取YYYY格式 * @return */ public static String getSdfTimes() { return sdfTimes.format(new Date()); } /** * 获取YYYY格式 * @return */ public static String getYear() { return sdfYear.format(new Date()); } public static String getMonth() { return sdfMonth.format(new Date()); } /** * 获取DD格式 * @return */ public static String getOnlyDay() { return sdfOnlyDay.format(new Date()); } /** * 获取YYYY-MM-DD格式 * @return */ public static String getDay() { return sdfDay.format(new Date()); } public static String MDay() { return sdfMDay.format(new Date()); } /** * 获取YYYYMMDD格式 * @return */ public static String getDays(){ return sdfDays.format(new Date()); } /** * 获取YYYY-MM-DD HH:mm:ss格式 * @return */ public static String getTime() { return sdfTime.format(new Date()); } /** * @Title: compareDate * @Description: TODO(日期比较,如果s>=e 返回true 否则返回false) * @param s * @param e * @return boolean * @throws * @author fh */ public static boolean compareDate(String s, String e) { if(fomatDate(s)==null||fomatDate(e)==null){ return false; } return fomatDate(s).getTime() >=fomatDate(e).getTime(); } public static boolean compareDate2(String s, String e) { if(fomatDate(s)==null||fomatDate(e)==null){ return false; } return fomatDate(s).getTime() >fomatDate(e).getTime(); } /** * 格式化日期 * @return */ public static Date fomatDate(String date) { DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); try { return fmt.parse(date); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 格式化日期 * @return */ public static Date fomatDateTime(String date) { DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { return fmt.parse(date); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 校验日期是否合法 * @return */ public static boolean isValidDate(String s) { DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); try { fmt.parse(s); return true; } catch (Exception e) { return false; // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 } } /** * @param startTime * @param endTime * @return */ public static int getDiffYear(String startTime,String endTime) { DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); try { int years=(int) (((fmt.parse(endTime).getTime()-fmt.parse(startTime).getTime())/ (1000 * 60 * 60 * 24))/365); return years; } catch (Exception e) { return 0; // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 } } /** *
  • 功能描述:时间相减得到天数 * @param beginDateStr * @param endDateStr * @return * long * @author Administrator */ public static long getDaySub(String beginDateStr,String endDateStr){ long day=0; java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd"); java.util.Date beginDate = null; java.util.Date endDate = null; try { beginDate = format.parse(beginDateStr); endDate= format.parse(endDateStr); } catch (ParseException e) { e.printStackTrace(); } day=(endDate.getTime()-beginDate.getTime())/(24*60*60*1000); //System.out.println("相隔的天数="+day); return day; } /** * 得到n天之后的日期 * @param days * @return */ public static String getAfterDayDate(String days) { int daysInt = Integer.parseInt(days); Calendar canlendar = Calendar.getInstance(); // java.util包 canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动 Date date = canlendar.getTime(); SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = sdfd.format(date); return dateStr; } /** * 获取30天之前的日期字符串 * @return yyyyMMdd格式时间字符串 */ public static String getBeforeDayDate() { Calendar canlendar = Calendar.getInstance(); canlendar.setTime(new Date()); canlendar.add(Calendar.DATE, -30); Date date = canlendar.getTime(); SimpleDateFormat sdfd = new SimpleDateFormat("yyyyMMdd"); String dateStr = sdfd.format(date); return dateStr; } /** * 得到n天之后是周几 * @param days * @return */ public static String getAfterDayWeek(String days) { int daysInt = Integer.parseInt(days); Calendar canlendar = Calendar.getInstance(); // java.util包 canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动 Date date = canlendar.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("E"); String dateStr = sdf.format(date); return dateStr; } /** * 按照yyyy-MM-dd HH:mm:ss的格式,日期转字符串 * @param date * @return yyyy-MM-dd HH:mm:ss */ public static String date2Str(Date date){ return date2Str(date,"yyyy-MM-dd HH:mm:ss"); } public static String date3Str(Date date){ return date2Str(date,"yyyy-M-d"); } public static String date4Str(Date date){ return date2Str(date,"yyyy-MM-dd"); } /** * 按照yyyy-MM-dd HH:mm:ss的格式,字符串转日期 * @param date * @return */ public static Date str2Date(String date){ if(Tools.notEmpty(date)){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { return sdf.parse(date); } catch (ParseException e) { e.printStackTrace(); } return new Date(); }else{ return null; } } /** * 把时间根据时、分、秒转换为时间段 * @param StrDate */ public static String getTimes(String StrDate){ String resultTimes = ""; SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date now; try { now = new Date(); java.util.Date date=df.parse(StrDate); long times = now.getTime()-date.getTime(); long day = times/(24*60*60*1000); long hour = (times/(60*60*1000)-day*24); long min = ((times/(60*1000))-day*24*60-hour*60); long sec = (times/1000-day*24*60*60-hour*60*60-min*60); StringBuffer sb = new StringBuffer(); //sb.append("发表于:"); if(hour>0 ){ sb.append(hour+"小时前"); } else if(min>0){ sb.append(min+"分钟前"); } else{ sb.append(sec+"秒前"); } resultTimes = sb.toString(); } catch (ParseException e) { e.printStackTrace(); } return resultTimes; } /** * 按照参数format的格式,日期转字符串 * @param date * @param format * @return */ public static String date2Str(Date date,String format){ if(date!=null){ SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(date); }else{ return ""; } } /** * 获取当年的第一天 * @param year * @author zhangyue * @return */ public static String getCurrYearFirst(){ Calendar currCal=Calendar.getInstance(); int currentYear = currCal.get(Calendar.YEAR); Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, currentYear); Date currYearFirst = calendar.getTime(); return sdfDay.format(currYearFirst); } /** * 获取当年的最后一天 * @param year * @author zhangyue * @return */ public static String getCurrYearLast(){ Calendar currCal=Calendar.getInstance(); int currentYear = currCal.get(Calendar.YEAR); Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, currentYear); calendar.roll(Calendar.DAY_OF_YEAR, -1); Date currYearLast = calendar.getTime(); return sdfDay.format(currYearLast); } /** * 获取当前季度第一天 * @author zhangyue * @return */ public static String quarterStart() { Date dBegin = new Date(); Calendar calBegin = Calendar.getInstance(); calBegin.setTime(dBegin); int remainder = calBegin.get(Calendar.MONTH) % 3; int month = remainder != 0 ? calBegin.get(Calendar.MONTH) - remainder: calBegin.get(Calendar.MONTH); calBegin.set(Calendar.MONTH, month); calBegin.set(Calendar.DAY_OF_MONTH, calBegin.getActualMinimum(Calendar.DAY_OF_MONTH)); calBegin.setTime(calBegin.getTime()); return sdfDay.format(calBegin.getTime()); } /** * 获取当前季度最后一天 * @author zhangyue * @return */ public static String quarterEnd() { Date dEnd = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(dEnd); int remainder = (calendar.get(Calendar.MONTH) + 1) % 3; int month = remainder != 0 ? calendar.get(Calendar.MONTH) + (3 - remainder) : calendar.get(Calendar.MONTH); calendar.set(Calendar.MONTH, month); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); calendar.setTime(calendar.getTime()); return sdfDay.format(calendar.getTime()); } /** * 获取本月第一天日期 * @return */ public static String getMonthFirstDay() { Calendar thisMonthFirstDateCal = Calendar.getInstance(); thisMonthFirstDateCal.set(Calendar.DAY_OF_MONTH, 1); String thisMonthFirstTime = sdfDay.format(thisMonthFirstDateCal.getTime()); return thisMonthFirstTime; } /** * 获取本月最后一天日期 * @return */ public static String getMonthEndDay() { Calendar thisMonthEndDateCal = Calendar.getInstance(); thisMonthEndDateCal.set(Calendar.DAY_OF_MONTH, thisMonthEndDateCal.getActualMaximum(Calendar.DAY_OF_MONTH)); String thisMonthEndTime = sdfDay.format(thisMonthEndDateCal.getTime()); return thisMonthEndTime; } public static boolean timeCalendar(Date nowTime, Date amBeginTime, Date amEndTime) { //设置当前时间 Calendar date = Calendar.getInstance(); date.setTime(nowTime); //设置开始时间 Calendar amBegin = Calendar.getInstance(); amBegin.setTime(amBeginTime);//上午开始时间 //设置结束时间 Calendar amEnd = Calendar.getInstance(); amEnd.setTime(amEndTime);//上午结束时间 //处于开始时间之后,和结束时间之前的判断 if ((date.after(amBegin) && date.before(amEnd))) { return true; } else { return false; } } /** * 获取本周的第一天 * @return String * **/ public static String getWeekStart(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式 Calendar cal = Calendar.getInstance(); // Calendar c = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, 0); // cal.setTime(time); // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 if (1 == dayWeek) { cal.add(Calendar.DAY_OF_MONTH, -1); } cal.setFirstDayOfWeek(Calendar.MONDAY);// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 int day = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 /* * cal.add(Calendar.DATE, 6); * System.out.println("所在周星期日的日期:"+sdf.format(cal.getTime())); */ return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " 00:00:00"; } /** * 获取本周的最后一天 * @return String * **/ public static String getWeekEnd(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式 Calendar cal = Calendar.getInstance(); // Calendar c = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, 0); // cal.setTime(time); // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 if (1 == dayWeek) { cal.add(Calendar.DAY_OF_MONTH, -1); } cal.setFirstDayOfWeek(Calendar.MONDAY);// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 int day = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 cal.add(Calendar.DATE, 6); return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " 23:59:59"; } /** * 判断时间格式 格式必须为“YYYY-MM-dd” * 2004-2-30 是无效的 * 2003-2-29 是无效的 * @param sDate * @return */ public static boolean isLegalDate(String sDate) { int legalLen = 10; if ((sDate == null) || (sDate.length() != legalLen)) { return false; } DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = formatter.parse(sDate); return sDate.equals(formatter.format(date)); } catch (Exception e) { return false; } } /** * 时间比较 * @param amBeginTime * @param amEndTime * @return */ public static boolean timeCompare(Date amBeginTime, Date amEndTime) { //设置开始时间 Calendar amBegin = Calendar.getInstance(); amBegin.setTime(amBeginTime);//上午开始时间 //设置结束时间 Calendar amEnd = Calendar.getInstance(); amEnd.setTime(amEndTime);//上午结束时间 //开始时间是否早于结束时间 if (amBegin.before(amEnd)) { return true; } else { return false; } } /** * 获取6个月内月份日期 * @param flag 结果是否显示年份 * @return */ public static List getHalfYearMonth(boolean flag) { Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, -4); String before_six = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH);// 六个月前 List result = new ArrayList(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");// 格式化为年月 Calendar min = Calendar.getInstance(); Calendar max = Calendar.getInstance(); try { min.setTime(sdf.parse(before_six)); min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1); max.setTime(sdf.parse(sdf.format(new Date()))); //不含当前月 /* int month = max.get(Calendar.MONTH); max.set(Calendar.MONTH, month-1); */ } catch (ParseException e) { e.printStackTrace(); } max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2); Calendar curr = min; while (curr.before(max)) { if (flag) { result.add(sdf.format(curr.getTime())); } else { result.add(curr.get(Calendar.MONTH) + 1 + "月"); } curr.add(Calendar.MONTH, 1); } return result; } /** * 获取本月所有日期 * @param isAllDay 结果是否显示本月所有日期 * @return */ public static List getThisMonth(boolean isAllDay) { Calendar c = Calendar.getInstance(); List result = new ArrayList(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");// 格式化为年月 Calendar min = Calendar.getInstance(); Calendar max = Calendar.getInstance(); min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1); if (isAllDay) { max.set(max.get(Calendar.YEAR), (max.get(Calendar.MONTH) + 1), 1); //本月所有天 } else { max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), c.get(Calendar.DATE) + 1); //本月初到当前日期所有天 } Calendar curr = min; while (curr.before(max)) { result.add(sdf.format(curr.getTime())); curr.add(Calendar.DATE, 1); } return result; } /** * 获取近多少天 * @param date 日期 * @param days 近几天(负数.日期以前几天;正数.日期以后几天) * @return */ public static List getNearDays(Date date, int days) { Calendar currentDate = Calendar.getInstance(); currentDate.setTime(date); Calendar nearDate = Calendar.getInstance(); nearDate.setTime(date); nearDate.add(Calendar.DATE, days); List result = new ArrayList(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");// 格式化为年月 if (currentDate.before(nearDate)) { Calendar curr = currentDate; nearDate.set(nearDate.get(Calendar.YEAR), nearDate.get(Calendar.MONTH), nearDate.get(Calendar.DATE)); while (curr.before(nearDate)) { result.add(sdf.format(curr.getTime())); curr.add(Calendar.DATE, 1); } } else { Calendar curr = nearDate; currentDate.set(currentDate.get(Calendar.YEAR), currentDate.get(Calendar.MONTH), currentDate.get(Calendar.DATE) + 1); while (curr.before(currentDate)) { result.add(sdf.format(curr.getTime())); curr.add(Calendar.DATE, 1); } } return result; } //根据当前日期获得最近n周的日期区间(不包含本周) public static String getFromToDate(SimpleDateFormat sdf, Date date, int n, int option, int k) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; int offset = 0 == option ? 1 - dayOfWeek : 7 - dayOfWeek; int amount = 0 == option ? offset - (n - 1 + k) * 7 : offset - k * 7; calendar.add(Calendar.DATE, amount); return sdf.format(calendar.getTime()); } public static SimpleDateFormat sdf() { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } // 获取上周的开始时间 public static String getBeginDayOfLastWeek() { //上周日期 SimpleDateFormat sdf = sdf(); String beginDate = getFromToDate(sdf, new Date(), 1, 0, 1); Calendar calendar = Calendar.getInstance(); try { calendar.setTime(sdf.parse(beginDate)); }catch (Exception e){ e.printStackTrace(); } calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return sdf.format(calendar.getTime()); } // 获取上周的结束时间 public static String getEndDayOfLastWeek() { //上周日期 SimpleDateFormat sdf = sdf(); String endDate = getFromToDate(sdf, new Date(), 1, 1, 1); Calendar calendar = Calendar.getInstance(); try { calendar.setTime(sdf.parse(endDate)); }catch (Exception e){ e.printStackTrace(); } calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); return sdf.format(calendar.getTime()); } // 获得上月第一天0点时间 public static String getTimesLastMonthmorning() { //上月日期 Calendar c=Calendar.getInstance(); c.add(Calendar.MONTH, -1); SimpleDateFormat sdf = sdf(); String gtimelast = sdf.format(c.getTime()); //上月 int lastMonthMaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH); c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), lastMonthMaxDay, 23, 59, 59); //按格式输出 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-01 00:00:00"); String gtime = sdf2.format(c.getTime()); //上月第一天 return gtime; } // 获得上月最后一天24点时间 public static String getTimesLastMonthnight() { //上月日期 Calendar c=Calendar.getInstance(); c.add(Calendar.MONTH, -1); SimpleDateFormat sdf = sdf(); String gtimelast = sdf.format(c.getTime()); //上月 int lastMonthMaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH); c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), lastMonthMaxDay, 23, 59, 59); //按格式输出 String gtime = sdf.format(c.getTime()); //上月最后一天 return gtime; } /** * 获取上一季度 开始和结束时间 * * @return */ public static String[] getLastQuarter() { SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd"); String[] range = new String[2]; Calendar startCalendar = Calendar.getInstance(); startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3 - 1) * 3); startCalendar.set(Calendar.DAY_OF_MONTH, 1); Date startDate = startCalendar.getTime(); range[0] = sdfd.format(startDate); Calendar endCalendar = Calendar.getInstance(); endCalendar.set(Calendar.MONTH, ((int) endCalendar.get(Calendar.MONTH) / 3 - 1) * 3 + 2); endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); Date endDate = endCalendar.getTime(); range[1] = sdfd.format(endDate); return range; } /** * 获取当日期前/后某个月的所有日期 0 本月 负数 之前的月份 。正数 之后的月份 * * @param months * @return */ public static List getDayListOfMonth(Integer months) { List list = new ArrayList<>(); Calendar cal = Calendar.getInstance(); cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + months); int month = cal.get(Calendar.MONTH) + 1; String monthStr = month < 10 ? "0" + month : String.valueOf(month); int year = cal.get(Calendar.YEAR); int day = cal.getActualMaximum(Calendar.DATE); for (int i = 1; i <= day; i++) { String d = String.valueOf(i); if (i < 10) { d = "0" + d; } list.add(year + "-" + monthStr + "-" + d); } return list; } /** * 字符串的日期格式的计算 */ public static int daysBetween(String smdate, String bdate) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); long time1 = 0; long time2 = 0; try { cal.setTime(sdf.parse(smdate)); time1 = cal.getTimeInMillis(); cal.setTime(sdf.parse(bdate)); time2 = cal.getTimeInMillis(); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } long between_days = (time2 - time1) / (1000 * 3600 * 24); return Integer.parseInt(String.valueOf(between_days)); } /** * 得到几天前的时间 * * @param d * @param day * @return */ public static Date getDateBefore(Date d, int day) { Calendar now = Calendar.getInstance(); now.setTime(d); now.set(Calendar.DATE, now.get(Calendar.DATE) - day); return now.getTime(); } /** * 把天数转换成data * @param days * @return */ public static Date getDateByDayInt(int days) { Calendar c = Calendar.getInstance(); c.set(1900, 0, 1); c.add(Calendar.DATE, days - 2); return c.getTime(); } /** * 时间换算(秒级) */ public static String calculateDateSecond(String dateStr, int second) { Date date = str2Date(dateStr); if (date != null) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.SECOND, second); SimpleDateFormat sdf = sdf(); return sdf.format(calendar.getTime()); } return ""; } /** * 港务局 的 隐患评审 判断阶段是否超时 * @param evaluate_stage_end_time * @return * @throws Exception */ public static int determineTime (String evaluate_stage_end_time) throws Exception{ //转换本阶段结束时间为时间戳 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date evaluate_stage_end_time_parse = format.parse(evaluate_stage_end_time); long evaluate_stage_end_time_temp = evaluate_stage_end_time_parse.getTime();//评审开始时间 //本阶段结束时间+4小时 long fourhour = 14400000;//4小时 //计算评审结束时间 long finally_time = evaluate_stage_end_time_temp+fourhour;//评审结束时间 //判断当前时间是否在可评审阶段内 String sysdate = format.format(new Date()); Date parse = format.parse(sysdate); long current_time = parse.getTime();//当前时间 //判断当前时间是否在评审时间内,上阶段是否发布 if(current_time >= evaluate_stage_end_time_temp && current_time <= finally_time){ return 0; } return 1; } /** * 获取本月某一天的日期 */ public static String getMonthAnyDay(int day) { Calendar thisMonthAnyDateCal = Calendar.getInstance(); thisMonthAnyDateCal.set(Calendar.DAY_OF_MONTH, day); String thisMonthAnyTime = sdfDay.format(thisMonthAnyDateCal.getTime()); return thisMonthAnyTime; } public static void main(String[] args) { // List halfYearMonth = DateUtil.getHalfYearMonth(true); // System.out.println(halfYearMonth); // List halfYearMonth = DateUtil.getThisMonth(false); // System.out.println(halfYearMonth); // List nearDays = DateUtil.getNearDays(new Date(), -9); // System.out.println(nearDays); // System.out.println(getLastQuarter()[0]+"----------"+getLastQuarter()[1]); /*System.out.println(isLegalDate("2010-02-29"));*/ /*System.out.println(quarterStart()+" 00:00:00"); System.out.println(getCurrYearLast()+" 23:59:59");*/ String dateStr = "2022-06-29 16:59:55"; for (int i = 0; i < 10; i++) { System.out.println(dateStr); dateStr = calculateDateSecond(dateStr, 1); } } }