diff --git a/newadmin/common-api/src/main/java/com/chaozhanggui/common/system/util/DateUtils.java b/newadmin/common-api/src/main/java/com/chaozhanggui/common/system/util/DateUtils.java new file mode 100644 index 0000000..47de9d4 --- /dev/null +++ b/newadmin/common-api/src/main/java/com/chaozhanggui/common/system/util/DateUtils.java @@ -0,0 +1,471 @@ +package com.chaozhanggui.common.system.util; + +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * Created by SEELE on 2018/4/19. + */ +public class DateUtils { + + private final static SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy"); + private final static SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd"); + 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 sdfTimeSS = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + private final static SimpleDateFormat sdfTimes = new SimpleDateFormat("yyyyMMddHHmmss"); + private final static SimpleDateFormat times=new SimpleDateFormat("HH:mm:ss"); + + private final static SimpleDateFormat sdfTimesSS = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + + public static int daysOfTwoDate(String startTime, String endTime) { + SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd"); + Date date1=null; + Date date = null; + Long l = 0L; + try { + date = formatter.parse(startTime); + long startLongTime = date.getTime(); + date1 = formatter.parse(endTime); + long endLongTime = date1.getTime(); + + l = (endLongTime - startLongTime) / (1000 * 60 * 60 * 24); + + } catch (ParseException e) { + e.printStackTrace(); + } + return l.intValue(); + } + + public static Date getNewDate(Date date, Integer type, Integer interval) throws ParseException { + Calendar c = Calendar.getInstance(); + c.setTime(date); + switch (type) { + case 1: + c.set(Calendar.YEAR, (c.get(Calendar.YEAR) + interval)); + break; + case 2: + c.set(Calendar.MONTH, (c.get(Calendar.MONTH) + interval)); + break; + case 3: + c.set(Calendar.DATE, (c.get(Calendar.DATE) + interval)); + break; + case 4: + c.set(Calendar.HOUR, (c.get(Calendar.HOUR) + interval)); + break; + case 5: + c.set(Calendar.MINUTE, (c.get(Calendar.MINUTE) + interval)); + break; + default: + c.set(Calendar.SECOND, (c.get(Calendar.SECOND) + interval)); + break; + } + Date newDate = c.getTime(); + return sdfTime.parse(sdfTime.format(newDate)); + } + + public static Date getEndDate(Date date) throws ParseException { + return sdfTime.parse(sdfDay.format(date).concat(" 23:59:59")); + } + + public static Date getNewDateH(Date date, Integer type, Integer interval) throws ParseException { + Calendar c = Calendar.getInstance(); + c.setTime(date); + switch (type) { + case 1: + c.set(Calendar.YEAR, (c.get(Calendar.YEAR) + interval)); + break; + case 2: + c.set(Calendar.MONTH, (c.get(Calendar.MONTH) + interval)); + break; + case 3: + c.set(Calendar.DATE, (c.get(Calendar.DATE) + interval)); + break; + case 4: + c.set(Calendar.HOUR, (c.get(Calendar.HOUR) + interval)); + break; + case 5: + c.set(Calendar.MINUTE, (c.get(Calendar.MINUTE) + interval)); + break; + default: + c.set(Calendar.SECOND, (c.get(Calendar.SECOND) + interval)); + break; + } + Date newDate = c.getTime(); + return sdfDay.parse(sdfDay.format(newDate)); + } + + public static String getNewDate2(Date date, Integer type, Integer interval) throws ParseException { + Calendar c = Calendar.getInstance(); + c.setTime(date); + switch (type) { + case 1: + c.set(Calendar.YEAR, (c.get(Calendar.YEAR) + interval)); + break; + case 2: + c.set(Calendar.MONTH, (c.get(Calendar.MONTH) + interval)); + break; + case 3: + c.set(Calendar.DATE, (c.get(Calendar.DATE) + interval)); + break; + case 4: + c.set(Calendar.HOUR, (c.get(Calendar.HOUR) + interval)); + break; + case 5: + c.set(Calendar.MINUTE, (c.get(Calendar.MINUTE) + interval)); + break; + default: + c.set(Calendar.SECOND, (c.get(Calendar.SECOND) + interval)); + break; + } + Date newDate = c.getTime(); + return sdfDay.format(newDate); + } + + public static Date getNewDate3(Date date, Integer type, Integer interval) throws ParseException { + Calendar c = Calendar.getInstance(); + c.setTime(date); + switch (type) { + case 1: + c.set(Calendar.YEAR, (c.get(Calendar.YEAR) + interval)); + break; + case 2: + c.set(Calendar.MONTH, (c.get(Calendar.MONTH) + interval)); + break; + case 3: + c.set(Calendar.DATE, (c.get(Calendar.DATE) + interval)); + break; + case 4: + c.set(Calendar.HOUR, (c.get(Calendar.HOUR) + interval)); + break; + case 5: + c.set(Calendar.MINUTE, (c.get(Calendar.MINUTE) + interval)); + break; + default: + c.set(Calendar.SECOND, (c.get(Calendar.SECOND) + interval)); + break; + } + Date newDate = c.getTime(); + return newDate; + } + + public static String getNewDate4(Date date, Integer type, Integer interval) throws ParseException { + Calendar c = Calendar.getInstance(); + c.setTime(date); + switch (type) { + case 1: + c.set(Calendar.YEAR, (c.get(Calendar.YEAR) + interval)); + break; + case 2: + c.set(Calendar.MONTH, (c.get(Calendar.MONTH) + interval)); + break; + case 3: + c.set(Calendar.DATE, (c.get(Calendar.DATE) + interval)); + break; + case 4: + c.set(Calendar.HOUR, (c.get(Calendar.HOUR) + interval)); + break; + case 5: + c.set(Calendar.MINUTE, (c.get(Calendar.MINUTE) + interval)); + break; + default: + c.set(Calendar.SECOND, (c.get(Calendar.SECOND) + interval)); + break; + } + Date newDate = c.getTime(); + return sdfDays.format(newDate); + } + + /** + * 获取YYYY格式 + * @return + */ + public static String getSdfTimes() { + return sdfTimes.format(new Date()); + } + + public static String getSdfTimesSS() { + return sdfTimesSS.format(new Date()); + } + + /** + * 获取YYYY格式 + * @return + */ + public static String getYear() { + return sdfYear.format(new Date()); + } + + /** + * 获取YYYY-MM-DD格式 + * @return + */ + public static String getDay() { + return sdfDay.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(); + } + + /** + * 格式化日期 + * @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 boolean isValidDate(String s) { + DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + try { + fmt.parse(s); + return true; + } catch (Exception e) { + // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 + return false; + } + } + + /** + * @param startTime + * @param endTime + * @return + */ + public static int getDiffYear(String startTime, String endTime) { + DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + try { + //long aa=0; + int years=(int) (((fmt.parse(endTime).getTime()-fmt.parse(startTime).getTime())/ (1000 * 60 * 60 * 24))/365); + return years; + } catch (Exception e) { + // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 + return 0; + } + } + + /** + *