zoukankan      html  css  js  c++  java
  • Util-工具类

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;

    import org.apache.commons.lang3.StringUtils;
    /**
     * 日期工具类
     */
    public class CalendarUtil {

        public static final String sf = "yyyyMMdd";

        /**
         * 将Date 转换为String类型
         * @param date
         * @return
         * @throws ParseException
         */
        public static String getDateToString(Date date, String sdf) throws ParseException {
            SimpleDateFormat ft = new SimpleDateFormat(StringUtils.isBlank(sdf) ? sf : sdf);
            return ft.format(date);
        }

        /**
         * 将String 时间转成Date
         * @param time
         * @param sdf
         * @return
         * @throws ParseException
         */
        public static Date getStringToDate(String time,String sdf) throws ParseException{
            SimpleDateFormat ft = new SimpleDateFormat(StringUtils.isBlank(sdf) ? sf : sdf);
             return ft.parse(time);
        }
        /**
         * 将当前时间转化成String类型
         * @param sdf
         * @return
         */
        public static String getCurrentTime(String sdf) {
            SimpleDateFormat ft = new SimpleDateFormat(StringUtils.isBlank(sdf) ? sf : sdf);
            Calendar cal = Calendar.getInstance();
            cal.setTimeInMillis(System.currentTimeMillis());
            String t = ft.format(cal.getTime());
            return t;
        }

        /**
         * 获取当年的第一天
         * @param year
         * @return
         */
        public static Date getCurrentYearFirstDay() {
            Calendar currCal = Calendar.getInstance();
            int currentYear = currCal.get(Calendar.YEAR);
            return getYearFirstDay(currentYear);
        }

        /**
         * 获取某年第一天日期
         * @param year 年份
         * @return Date
         */
        public static Date getYearFirstDay(int year) {
            Calendar calendar = Calendar.getInstance();
            calendar.clear();
            calendar.set(Calendar.YEAR, year);
            Date currYearFirst = calendar.getTime();
            return currYearFirst;
        }
        /**
         * 当前时间点
         * @return
         */
        public static  int getCurrentClock(){
                Calendar calendar = Calendar.getInstance();
                int hour = calendar.get(Calendar.HOUR_OF_DAY);
                return hour;
            }
        public static void main(String[] args) {
            System.out.println(CalendarUtil.getCurrentTime("yyyy"));
        }
    }

    public enum DataTypeEnum {
        INT("1", "整型"), NUM("2", "数值类型"), PERCENT("3", "百分比类型"), STRING("4", "字符类型");

        private String code;
        private String msg;

        private DataTypeEnum(String code, String msg) {
            this.code = code;
            this.msg = msg;
        }
    /**
     * 数据类型

    */
        public String getCode() {
            return code;
        }

        public String getMsg() {
            return msg;
        }

    }

    package com.paic.commcc.util;

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;

    import org.apache.commons.lang3.StringUtils;
    import org.apache.commons.lang3.time.DateUtils;
    import org.quartz.CronExpression;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.scheduling.support.CronSequenceGenerator;

    /**
     */
    public class DateUtil {

        public static final String sf = "yyyyMMdd";

        public static final String FORMAT_1 = "yyyyMMddHHmmss";

        public static final String FORMAT_2 = "YYYY-MM-DD";

        public static final String FORMAT_3 = "yyyy年MM月dd日";

        public static final String FORMAT_4 = "yyyyMMdd";

        public static final String FORMAT_5 = "yyyy-MM-dd";

        public static final String FORMAT_6 = "yyyy-MM-dd HH:mm:ss";

        public static final String FORMAT_7 = "HH:mm:ss";
        public static final String FORMAT_8 = "YYYY/MM/DD";

        public static final String FORMAT_9 = "yyyy/MM/dd HH:mm:ss";

        public static final String FORMAT_10 = "yyyyMM";
        
        public static final String FORMAT_11 = "yyyyMMdd HH:mm:ss";
        
        public static final String FORMAT_12 = "ss mm HH dd MM ? yyyy";

        public static final int CALENDAR_DEFAULT_YEAR = 1990;

        public static final int CALENDAR_DEFAULT_MONTH = 1;

        public static final int CALENDAR_DEFAULT_DAY = 1;

        private static final Logger logger = LoggerFactory.getLogger(DateUtil.class);

        private DateUtil() {
        }

        /**
         * 格式化指定的时间
         *
         * @return String
         */
        public static String formatDate(Date date, String format) {
            return new SimpleDateFormat(format).format(date);
        }

        /**
         * 将format格式的字符串时间格式化为yyyyMMdd的
         *
         * @param date
         * @param format
         * @return
         * @throws java.text.ParseException
         */
        public static String formatDate(String date, String format) throws ParseException {
            return formatDate(parseDate(date, format), FORMAT_4);
        }

        /**
         * 判断时间格式是否是"yyyyMM"或者"yyyyMMdd"
         *
         * @param date
         *            字符串类型时间
         * @param format
         *            时间格式
         * @return
         */
        public static boolean isDate(String date, String format) {
            if(StringUtils.isBlank(date) || StringUtils.isBlank(format)) {
                return false;
            }
            
            if(format.length() != date.length()) {
                return false;
            }
            
            try {
                SimpleDateFormat sdf = new SimpleDateFormat(format);
                Date d = sdf.parse(date); // 把字符串转化为日期(可以过滤掉奇怪格式的日期格式)
                String newDate = sdf.format(d);// 日期转化为字符

                /*
                 * 1,把字符串的日期转化为Date类型的日期。 2,把Date类型日期转化为字符串类型日期。 3,如果两者相等,说明日期格式符合要求
                 */
                if (null != newDate && newDate.equals(date)) {
                    return true;
                } else {
                    return false;
                }
            } catch (ParseException e) {
                // 出现异常,说明时间格式有误
                logger.error("时间格式错误:{}", e.getMessage(), e);
                return false;
            }

        }
        
        /**
         * 格式化当前时间
         *
         * @return String
         */
        public static String formatCurrentDate(String format) {
            return formatDate(new Date(), format);
        }

        /**
         * 获取当前时间戳
         *
         * @return String
         */
        public static String generateSystemTimestamp() {
            Date currentDate = new Date();
            return String.valueOf(currentDate.getTime());
        }

        /**
         * 获取当前时间戳
         *
         * @return String
         */
        public static String generateCurrentTimeMillis() {
            return String.valueOf(System.currentTimeMillis());
        }

        /**
         * 判断firstTime是否在secondTime之后,忽略日期部分
         *
         * @param firstTime
         * @param secondTime
         * @return
         */
        public static boolean isTimeAfter(Date firstTime, Date secondTime) {

            Calendar calendar1 = Calendar.getInstance();
            calendar1.setTime(firstTime);
            calendar1.set(CALENDAR_DEFAULT_YEAR, CALENDAR_DEFAULT_MONTH, CALENDAR_DEFAULT_DAY);
            Calendar calendar2 = Calendar.getInstance();
            calendar2.setTime(secondTime);
            calendar2.set(CALENDAR_DEFAULT_YEAR, CALENDAR_DEFAULT_MONTH, CALENDAR_DEFAULT_DAY);
            return calendar1.after(calendar2);
        }

        /**
         * 判断firstTime是否在secondTime之前,忽略日期部分
         *
         * @param firstTime
         * @param secondTime
         * @return
         */
        public static boolean isTimeBefore(Date firstTime, Date secondTime) {
            return isTimeAfter(secondTime, firstTime);
        }

        /**
         * 判断firstTime是否在secondTime之后,不忽略日期部分
         *
         * @param firstTime
         * @param secondTime
         * @return
         */
        public static boolean isTimeAfterIncludeDate(Date firstTime, Date secondTime) {
            Calendar calendar1 = Calendar.getInstance();
            calendar1.setTime(firstTime);
            Calendar calendar2 = Calendar.getInstance();
            calendar2.setTime(secondTime);
            return calendar1.after(calendar2);
        }

        /**
         * 判断firstTime是否在secondTime之前,不忽略日期部分
         *
         * @param firstTime
         * @param secondTime
         * @return
         */
        public static boolean isTimeBeforeIncludeDate(Date firstTime, Date secondTime) {
            return isTimeAfterIncludeDate(secondTime, firstTime);
        }

        /**
         * 获取date添加minutes分钟后的时间
         *
         * @param date
         * @param minutes
         * @return
         */
        public static Date addMinutes(Date date, int minutes) {
            return DateUtils.addMinutes(date, minutes);
        }

        /**
         * 格式化字符串为时间类型
         *
         * @param date
         * @param format
         * @return
         */
        public static Date parseDate(String date, String format) throws ParseException {
            return new SimpleDateFormat(format).parse(date);
        }

        /**
         * 格式化字符串为时间类型(严格模式)
         *
         * @param date
         * @param format
         * @return
         */
        public static Date parseDateStrict(String date, String format) throws ParseException {
            SimpleDateFormat dateFormat = new SimpleDateFormat(format);
            dateFormat.setLenient(false);
            return dateFormat.parse(date);
        }

        /**
         * 判断参数的格式是否为“yyyyMMdd”格式的合法日期字符串
         *
         */
        public static boolean isValidDate(String str) {
            try {
                if (str != null && !"".equals(str)) {
                    if (str.length() == 8) {
                        // 闰年标志
                        boolean isLeapYear = false;
                        String year = str.substring(0, 4);
                        String month = str.substring(4, 6);
                        String day = str.substring(6, 8);
                        int vYear = Integer.parseInt(year);
                        // 判断年份是否合法
                        if (vYear < 1900 || vYear > 2200) {
                            return false;
                        }
                        // 判断是否为闰年
                        if (vYear % 4 == 0 && vYear % 100 != 0 || vYear % 400 == 0) {
                            isLeapYear = true;
                        }
                        // 判断月份
                        // 1.判断月份
                        if (month.startsWith("0")) {
                            String units4Month = month.substring(1, 2);
                            int vUnits4Month = Integer.parseInt(units4Month);
                            if (vUnits4Month == 0) {
                                return false;
                            }
                            if (vUnits4Month == 2) {
                                // 获取2月的天数
                                int vDays4February = Integer.parseInt(day);
                                if (isLeapYear) {
                                    if (vDays4February > 29)
                                        return false;
                                } else {
                                    if (vDays4February > 28)
                                        return false;
                                }
                            }
                        } else {
                            // 2.判断非0打头的月份是否合法
                            int vMonth = Integer.parseInt(month);
                            if (vMonth != 10 && vMonth != 11 && vMonth != 12) {
                                return false;
                            }
                        }
                        // 判断日期
                        // 1.判断日期
                        if (day.startsWith("0")) {
                            String units4Day = day.substring(1, 2);
                            int vUnits4Day = Integer.parseInt(units4Day);
                            if (vUnits4Day == 0) {
                                return false;
                            }
                        } else {
                            // 2.判断非0打头的日期是否合法
                            int vDay = Integer.parseInt(day);
                            if (vDay < 10 || vDay > 31) {
                                return false;
                            }
                        }
                        return true;
                    } else {
                        return false;
                    }
                } else {
                    return false;
                }
            } catch (Exception e) {
                logger.error("异常:{}", e.getMessage(), e);
                return false;
            }
        }

        /**
         * 判断参数的格式是否为“yyyyMMdd”格式的合法日期字符串
         *
         */
        public static boolean isValidMonth(String str) {
            try {
                if (str != null && !"".equals(str)) {
                    if (str.length() == 6) {
                        // 闰年标志
                        String year = str.substring(0, 4);
                        String month = str.substring(4, 6);
                        int vYear = Integer.parseInt(year);
                        // 判断年份是否合法
                        if (vYear < 1900 || vYear > 2200) {
                            return false;
                        }
                        // 判断月份
                        // 1.判断月份
                        if (month.startsWith("0")) {
                            String units4Month = month.substring(1, 2);
                            int vUnits4Month = Integer.parseInt(units4Month);
                            if (vUnits4Month == 0) {
                                return false;
                            }
                        } else {
                            // 2.判断非0打头的月份是否合法
                            int vMonth = Integer.parseInt(month);
                            if (vMonth != 10 && vMonth != 11 && vMonth != 12) {
                                return false;
                            }
                        }
                        return true;
                    } else {
                        return false;
                    }
                } else {
                    return false;
                }
            } catch (Exception e) {
                logger.error("异常:{}", e.getMessage(), e);
                return false;
            }
        }

        /**
         * 将Date 转换为String类型
         *
         * @param date
         * @return
         * @throws ParseException
         */
        public static String getDate2String(Date date, String sdf) {
            SimpleDateFormat ft = new SimpleDateFormat(StringUtils.isBlank(sdf) ? sf : sdf);
            return ft.format(date);
        }

        public static Date toDate(String str) {
            if (str == null) {
                return null;
            }
            try {
                str = StringUtils.trim(str);

                if (str.indexOf('/') != -1) {
                    return new SimpleDateFormat("yyyy/MM/dd").parse(str);
                }
                return new SimpleDateFormat("yyyy-MM-dd").parse(str);
            } catch (Exception e) {
                // throw new RuntimeException(StringUtils.join("[", str, "] ",
                // "DateUtil toDate parse exception"), e);
                logger.error(StringUtils.join("[", str, "] ", "DateUtil toDate parse exception"), e.getMessage(), e);
                return null;
            }
        }

        /**
         * 时间戳转换成日期格式字符串
         *
         * @param seconds
         *            精确到秒的字符串
         * @param format
         * @return
         */
        public static String timeStamp2Date(String seconds, String format) {
            if (seconds == null || seconds.isEmpty() || "null".equals(seconds)) {
                return "";
            }
            SimpleDateFormat sdf;
            if (format == null || format.isEmpty()) {
                sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            } else {
                sdf = new SimpleDateFormat(format);
            }
            return sdf.format(new Date(Long.parseLong(seconds + "000")));
        }

        /**
         * 日期格式字符串转换成时间戳
         *
         * @param date_str
         *            字符串日期
         * @param format
         *            如:yyyy-MM-dd HH:mm:ss
         * @return
         */
        public static String date2TimeStamp(String date_str, String format) {
            try {
                SimpleDateFormat sdf = new SimpleDateFormat(format);
                return String.valueOf(sdf.parse(date_str).getTime() / 1000);
            } catch (Exception e) {
                logger.error("字符串转时间戳异常:{}", e.getMessage(), e);
            }
            return "";
        }

        /**
         * quartz框架时间转换为timstamp
         *
         * @param date_str
         *            字符串日期
         * @param format
         *            如:yyyy-MM-dd HH:mm:ss
         * @return
         */
        public static String date2timeStampForQuartz(String date_str, String format) {
            try {
                String str = date2TimeStamp(date_str, format);
                return str + "000";
            } catch (Exception e) {
                logger.error("框架时间转换异常:{}", e.getMessage(), e);
            }
            return "";
        }

        /**
         * 取得当前时间戳(精确到秒)
         *
         * @return
         */
        public static String timeStamp() {
            long time = System.currentTimeMillis();
            String t = String.valueOf(time / 1000);
            return t;
        }

        /**
         * @param d1
         * @param d2
         * @return 时间比较, d1 > d2 返回1,d1 < d2 返回-1, d1 = d2 返回0
         */
        public static int compareDate(Date d1, Date d2) {
            if (d1.getTime() > d2.getTime()) {
                return 1;
            } else if (d1.getTime() < d2.getTime()) {
                return -1;
            } else {
                return 0;
            }
        }

        /**
         * @param m1
         * @param m2
         * @return 月份比较,返回m1-m2
         */
        public static int compareMonth(String m1, String m2) {
            if (!isValidMonth(m1) || !isValidMonth(m2)) {
                // 不是合法月份,返回999999
                return 999999;
            } else {
                try {
                    SimpleDateFormat format = new SimpleDateFormat(FORMAT_10);
                    Calendar c1 = Calendar.getInstance();
                    Calendar c2 = Calendar.getInstance();
                    c1.setTime(format.parse(m1));
                    c2.setTime(format.parse(m2));
                    int month = c1.get(Calendar.MONTH) - c2.get(Calendar.MONTH);
                    int yearMonth = (c1.get(Calendar.YEAR) - c2.get(Calendar.YEAR)) * 12;
                    return month + yearMonth;
                } catch (ParseException e) {
                    logger.error("解析异常:{}", e.getMessage(), e);
                    return 999999;
                }
            }
        }

        /**
         * @param afterTime
         * @param cronExpression
         * @return 根据cron表达式获取某时间之后的下次执行时间
         */
        public static Date getTimeAfter(Date afterTime, String cronExpression) {
            CronExpression cronEx;
            try {
                cronEx = new CronExpression(cronExpression);
                return cronEx.getTimeAfter(afterTime);
            } catch (ParseException e) {
                logger.error("根据cron表达式获取时间异常:{}", e);
                return null;
            }
        }
        
        /**获取某月的自然天数,2月28天,3月31天
         * @taskId <br>
         * @param yyyyMM 格式的 validMonth
         * @return <br>
         */
        public static  int countDaysOfMonth(String validMonth){
            int year  = Integer.parseInt(validMonth.substring(0,4));
            int month = Integer.parseInt(validMonth.substring(4));
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.YEAR, year);
            calendar.set(Calendar.MONTH, month-1);
            return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        }
        
        /**
         * Description:获取cron表达式的下次时间 <br>
         *  
         * @author LIYOUHUI784<br>
         * @taskId <br>
         * @param cronExpression
         * @return <br>
         */
        public static Date getNextFireTime(String cron) {
            if(StringUtils.isBlank(cron)) {
                return null;
            }
            CronSequenceGenerator cronSequenceGenerator = new CronSequenceGenerator(cron);
            return cronSequenceGenerator.next(new Date());
        }
        
        /**
         * Description:获取当前月某天某时某分某秒的日历 <br>
         *  
         * @author liyouhui784<br>
         * @taskId <br>
         * @param day
         * @param hour
         * @param minute
         * @param second
         * @return <br>
         */
        public static Calendar getCurrentMonthSomeTime(int day, int hour, int minute, int second) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(new Date());
            calendar.set(Calendar.DAY_OF_MONTH, day);
            calendar.set(Calendar.HOUR_OF_DAY, hour);
            calendar.set(Calendar.MINUTE, minute);
            calendar.set(Calendar.SECOND, second);
            return calendar;
        }
        
    }

    package com.paic.commcc.util;

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;

    import org.apache.commons.lang3.StringUtils;

    public class DateUtils {
        public static final String sf = "yyyyMMdd";
        public static final String time_sf = "yyyyMMddHHmmssSSS";
        public static final String DATE_FORMAT = "yyyy-MM-dd";
        public static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";

        public static final String after = "AFTER";
        public static final String before = "BEFORE";

        /**
         * 将linux时间戳 转换为String类型 date
         *
         * @param date
         * @return
         */
        public static Date getLinuxTimeToDate(String dateTime) {
            if (dateTime == null) {
                return null;
            }
            Date date = new Date(Long.parseLong(dateTime));
            return date;
        }

        /**
         * 将Date 转换为String类型
         *
         * @param date
         * @return
         * @throws ParseException
         */
        public static String getDateToString(Date date, String sdf) throws ParseException {
            SimpleDateFormat ft = new SimpleDateFormat(StringUtils.isBlank(sdf) ? sf : sdf);
            return ft.format(date);
        }

        /**
         * 将String 时间转成Date
         *
         * @param time
         * @param sdf
         * @return
         * @throws ParseException
         */
        public static Date getStringToDate(String time, String sdf) throws ParseException {
            SimpleDateFormat ft = new SimpleDateFormat(StringUtils.isBlank(sdf) ? sf : sdf);
            return ft.parse(time);
        }

        /**
         * 获取当天使用指定的格式
         */
        public static String today(String sdf) {
            SimpleDateFormat ft = new SimpleDateFormat(StringUtils.isBlank(sdf) ? sf : sdf);
            return ft.format(new Date());
        }

        /**
         * 获取当天使用指定的格式
         */
        public static String today() {
            return today(sf);
        }

        /**
         * 将当前时间转化成String类型
         *
         * @param sdf
         * @return
         */
        public static String getCurrentTime(String sdf) {
            SimpleDateFormat ft = new SimpleDateFormat(StringUtils.isBlank(sdf) ? sf : sdf);
            Calendar cal = Calendar.getInstance();
            cal.setTimeInMillis(System.currentTimeMillis());
            String t = ft.format(cal.getTime());
            return t;
        }

        /**
         * 获取当年的第一天
         *
         * @param year
         * @return
         */
        public static Date getCurrentYearFirstDay() {
            Calendar currCal = Calendar.getInstance();
            int currentYear = currCal.get(Calendar.YEAR);
            return getYearFirstDay(currentYear);
        }

        /**
         * 获取某年第一天日期
         *
         * @param year
         *            年份
         * @return Date
         */
        public static Date getYearFirstDay(int year) {
            Calendar calendar = Calendar.getInstance();
            calendar.clear();
            calendar.set(Calendar.YEAR, year);
            Date currYearFirst = calendar.getTime();
            return currYearFirst;
        }

        /**
         * 当前时间点
         *
         * @return
         */
        public static int getCurrentClock() {
            Calendar calendar = Calendar.getInstance();
            int hour = calendar.get(Calendar.HOUR_OF_DAY);
            return hour;
        }

        /**
         * 时间字符串转时间戳
         *
         * @throws ParseException
         */

        public static String dateToStamp(String s) throws ParseException {
            return dateToStamp(s, "yyyy-MM-dd HH:mm:ss");
        }

        public static String dateToStamp(String s, String sdf) throws ParseException {
            String str;
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(sdf);
            Date date = simpleDateFormat.parse(s);
            long ts = date.getTime();
            str = String.valueOf(ts);
            return str;
        }

        /**
         * 当前时间转时间戳
         *
         * @throws ParseException
         */
        public static String dateToStamp() {
            Date date = new Date();
            long ts = date.getTime();
            String str = String.valueOf(ts);
            return str;
        }

        /**
         * 时间戳转时间
         */
        public static String stampToDate(String s) {
            String res;
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            long ts = Long.parseLong(s);
            Date date = new Date(ts);
            res = simpleDateFormat.format(date);
            return res;

        }

        /**
         * 任意正确时间转换成为想要的格式字符串
         */
        public static String getWantDate(String dateString, String reg) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            SimpleDateFormat sb = new SimpleDateFormat(reg);

            String s = dateString.replace("-", "").replace(":", "").replace("/", "").replace(" ", "");
            String a = s.substring(0, 8);
            Date date;
            String ss = null;
            try {
                date = sdf.parse(a);
                ss = sb.format(date);
            } catch (ParseException e) {

                e.printStackTrace();
            }
            return ss;

        }

        /**
         * 任意正确时间转换成为想要的日期
         *
         * @throws ParseException
         */
        public static Date getWantDates(String dateString, String reg) throws ParseException {

            SimpleDateFormat sb = new SimpleDateFormat("yyyyMMdd");

            String str = dateString.replace("-", "").replace(":", "").replace("/", "").replace(" ", "");
            String a = str.substring(0, 8);
            Date date = sb.parse(a);

            return date;

        }

        /**
         * 将String 时间转成Date
         *
         * @param time
         * @param sdf
         * @return
         */
        public static Date getString2Date(String time, String sdf) {
            SimpleDateFormat ft = new SimpleDateFormat(StringUtils.isBlank(sdf) ? sf : sdf);
            try {
                return ft.parse(time);
            } catch (ParseException e) {
                // logger.error("字符串转日期出错", e);
            }

            return null;
        }

        /**
         * 将Date 转换为String类型
         *
         * @param date
         * @return
         * @throws ParseException
         */
        public static String getDate2String(Date date, String sdf) {
            SimpleDateFormat ft = new SimpleDateFormat(StringUtils.isBlank(sdf) ? sf : sdf);
            return ft.format(date);
        }

        /**
         * 获取指定日期的前一天
         *
         * @param date
         * @return
         * @throws ParseException
         */
        public static Date getYesterDay(Date date, String sdf) throws ParseException {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.DATE, -1);
            SimpleDateFormat ft = new SimpleDateFormat(sdf);
            return ft.parse(ft.format(calendar.getTime()));
        }

        /**
         * 日期计算 目标日期加target天,target为正数表示加,为负数表示减
         *
         * @param date
         * @return Date
         * @throws ParseException
         */
        public static Date dateCalculate(Date date, String sdf, Integer target) throws ParseException {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.DATE, target);
            SimpleDateFormat ft = new SimpleDateFormat(sdf);
            return ft.parse(ft.format(calendar.getTime()));
        }

        /**
         * 将常用时间格式字符串转化为时间 - / . 以及没有分隔都可以
         */
        public static Date transformDateStyle(String dateString) {
            Date date = null;
            if (dateString != null) {
                try {
                    if (dateString.indexOf('-') > 0) {
                        date = new SimpleDateFormat("yyyy-MM-dd").parse(dateString);
                    } else if (dateString.indexOf('/') > 0) {
                        date = new SimpleDateFormat("yyyy/MM/dd").parse(dateString);
                    } else if (dateString.indexOf('.') > 0) {
                        date = new SimpleDateFormat("yyyy.MM.dd").parse(dateString);
                    } else {
                        date = new SimpleDateFormat("yyyyMMdd").parse(dateString);
                    }
                } catch (ParseException e) {
                    date = new Date();
                }
            }
            return date;
        }

        /**
         * 判断输入的时间是否大于或小于当前日期
         *
         * @param date
         *            需要判断的日期
         * @param str
         *            AFTER 验证在当前之前或等于当前日期,BEFORE验证在当前日期之后或等于当前日期
         * @return 1==验证通过 0==验证失败
         * @throws ParseException
         */
        public static int isDateBeforeOrAfter(Date date, String str) throws ParseException {
            Date sdate = new Date();
            int dint;
            boolean falg;
            if (after.equals(str)) {
                falg = date.before(sdate);
                if (falg) {
                    return 1;
                }
            }
            if (before.equals(str)) {
                dint = date.compareTo(getYesterDay(sdate, sf));
                if (dint == 1) {
                    return 1;
                }
            }
            return 0;

        }

        /**
         * 获得当月1号零时零分零秒
         *
         * @return
         */
        public static Date initDateByMonth() {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(new Date());
            calendar.set(Calendar.DAY_OF_MONTH, 1);
            calendar.set(Calendar.HOUR_OF_DAY, 0);
            calendar.set(Calendar.MINUTE, 0);
            calendar.set(Calendar.SECOND, 0);
            return calendar.getTime();
        }

    }

  • 相关阅读:
    shell log
    Python:列出列表中所有元素的组合可能
    scrapy 停止爬虫
    shell split log by data
    mitmproxy 配置
    插件reres的使用,替换网站的js文件
    解决小米Note adb调试无法发现设备
    md5 计算文件一致性
    【Frida Hook 学习记录】Frida Hook Android 常用方法
    监控神器普罗米修斯Prometheus安装配置
  • 原文地址:https://www.cnblogs.com/fengyouheng/p/10267044.html
Copyright © 2011-2022 走看看