zoukankan      html  css  js  c++  java
  • DateUtils 时间工具类

     public final static String patternTime1 = "yyyy-MM-dd HH:mm:ss";
        public final static String patternTime2 = "yyyy-MM-dd";
        public final static String patternTime3 = "MM-dd";
        public final static String patternTime4 = "MM-dd HH:mm";
        public final static String patternTime5 = "yyyy-MM";
        public final static String patternTime6 = "HH:mm";
        public final static String patternTime7 = "M月";
        public final static String patternTime8 = "yyyy-MM-dd HH";
        public final static String patternTime9 = "yyyy-MM-dd HH:mm";
        public final static String patternTime10 = "yyyy/MM/dd HH:mm:ss";
        public final static String Replace = "0";
        public final static String SUFFIX = ":00";
    
       /**
         * 获取指定日期
         *
         * @param patternTime 时间格式
         * @return 返回时间
         */
        public static String getNowTime(String patternTime, int number) {
            return LocalDateTime.now().plusDays(number).format(DateTimeFormatter.ofPattern(patternTime));
        }
    
        /**
         * 获取当天之前的几天日期,不包括当天
         *
         * @param number 日期数目
         * @return 返回日期数组
         */
        public static List<String> takeDateByNumberForShow(int number, String pattern) {
            List<String> dateList = new ArrayList<>();
            DateFormat simpleDateFormat = new SimpleDateFormat(pattern);
            for (int i = number; i > 0; i--) {
                Calendar calendar = Calendar.getInstance();
                calendar.add(Calendar.DAY_OF_MONTH, -i);
                String itemDate = simpleDateFormat.format(calendar.getTime());
                dateList.add(itemDate);
            }
            return dateList;
        }
    
    
        /**
         * 获取当天之前的几天日期,包含当天
         *
         * @param number 日期数目
         * @return 返回日期数组
         */
        public static List<String> takeCurrentDateByNumber(int number, String pattern) {
            List<String> dateList = new ArrayList<>();
            DateFormat simpleDateFormat = new SimpleDateFormat(pattern);
            for (int i = number; i >= 0; i--) {
                Calendar calendar = Calendar.getInstance();
                calendar.add(Calendar.DAY_OF_MONTH, -i);
                String itemDate = simpleDateFormat.format(calendar.getTime());
                dateList.add(itemDate);
            }
            return dateList;
        }
    
        /**
         * 获取距离当前月的指定月份数
         */
        public static List<String> takeMonth(int mon, String pattern) {
            List<String> list = new ArrayList<>();
            for (int i = mon; i >= 0; i--) {
                SimpleDateFormat sdf = new SimpleDateFormat(pattern);
                Calendar c = Calendar.getInstance();
                c.setTime(new Date());
                c.add(Calendar.MONTH, -i);
                Date date = c.getTime();
                list.add(sdf.format(date));
            }
            return list;
        }
    
        //  <E> ArrayList<E>
    
        /**
         * 获取距离当前月的指定月份
         */
        public static String takeSpecifiedMonth(int mon, String pattern) {
            SimpleDateFormat sdf = new SimpleDateFormat(pattern);
            Calendar c = Calendar.getInstance();
            c.setTime(new Date());
            c.add(Calendar.MONTH, -mon);
            Date date = c.getTime();
            return sdf.format(date);
        }
    
        /**
         * 获取月份的时间间隔 {2021-05-01,2021-06-01},{2021-06-01,2021-07-01}
         */
    
        public static LinkedHashMap<String, String> getMonthIntervalTimes() {
            LinkedHashMap<String, String> map = new LinkedHashMap<>();
            List<String> months = takeMonth(5, patternTime5);
            for (int i = 0; i < months.size() - 1; i++) {
                map.put(months.get(i), months.get(i + 1));
            }
            return map;
        }
    
        /**
         * 获取距离当前时间多少分钟
         */
        public static String getPushMinutesTimes(int minutes) {
            return LocalDateTime.now().plusMinutes(minutes).format(DateTimeFormatter.ofPattern(DateUtils.patternTime1));
        }
    
        /**
         * 获取当前时间以10分钟为间隔的多个时间 eg: 23:10 23:20 23:30
         */
    
        public static List<String> getTenIntervalTimes(int num, String pattern, String suffix) {
            List<String> list = new ArrayList<>();
            for (int i = num; i >= 0; i--) {
                LocalDateTime dateTime = LocalDateTimeUtil.offset(LocalDateTime.now(), -10L * i, ChronoUnit.MINUTES);
                String str = dateTime.format(DateTimeFormatter.ofPattern(pattern));
                StringBuilder sb = new StringBuilder(str);
                sb.replace(sb.length() - 1, sb.length(), Replace);
                if (suffix == null) {
                    list.add(sb.toString());
                } else {
                    list.add(dateTime.format(DateTimeFormatter.ofPattern(patternTime2)) + " " + sb.toString() + suffix);
                }
            }
            return list;
        }
    
    
        /**
         * 获取10分钟的时间间隔 {2021-05-23 23:10=2021-05-23 23:20}
         */
    
        public static LinkedHashMap<String, String> getTenIntervalTimes() {
            LinkedHashMap<String, String> map = new LinkedHashMap<>();
            List<String> intervalTimes = getTenIntervalTimes(5, patternTime6, SUFFIX);
            for (int i = 0; i < intervalTimes.size() - 1; i++) {
                map.put(intervalTimes.get(i), intervalTimes.get(i + 1));
            }
            return map;
        }
    
        /**
         * 获取指定日期开始时间 xxxx-xx-xx 00:00:00
         *
         * @param number 离本日天数
         */
        public static String dayStart(int number) {
            return LocalDateTime.of(LocalDate.now().plusDays(number), LocalTime.MIN)
                    .format(DateTimeFormatter.ofPattern(patternTime1));
        }
    
        /**
         * 获取指定日期结束时间 xxxx-xx-xx 23:59:59
         */
        public static String dayEnd(int number) {
            return LocalDateTime.of(LocalDate.now().plusDays(number), LocalTime.MAX)
                    .format(DateTimeFormatter.ofPattern(patternTime1));
        }
    
    
        /**
         * 日期格式化
         */
        public static String dateToString(Date date, String pattern) {
            return new SimpleDateFormat(pattern).format(date);
        }
    
        /**
         * 日期格式转换成 Y/M/D/00:00:00格式
         */
        public static Date formatYMDTime(Date date) {
            SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.patternTime2);
            try {
                String dateStr = dateToString(date, DateUtils.patternTime2);
                Date parse = sdf.parse(dateStr, new ParsePosition(0));
                return parse;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 日期增加count天
         */
        public static Date addCountByDay(Date date, Integer count) {
            try {
                Calendar cal = Calendar.getInstance();
                cal.setTime(date);
                cal.add(Calendar.DATE, count);
                return cal.getTime();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        private static Long takeStartTime(Calendar todayStart) {
            todayStart.set(Calendar.HOUR_OF_DAY, 0);
            todayStart.set(Calendar.MINUTE, 0);
            todayStart.set(Calendar.SECOND, 1);
            todayStart.set(Calendar.MILLISECOND, 1);
            return todayStart.getTime().getTime();
        }
    
        private static Long takeEndTime(Calendar todayStart) {
            todayStart.set(Calendar.HOUR_OF_DAY, 23);
            todayStart.set(Calendar.MINUTE, 59);
            todayStart.set(Calendar.SECOND, 59);
            todayStart.set(Calendar.MILLISECOND, 999);
            return todayStart.getTime().getTime();
        }
    
        /**
         * 非标准时间格式化
         */
        public static String formatDtime(String time) {
            String[] ts = time.split("T");
            String sub = ts[1].substring(0, 8);
            return ts[0] + " " + sub;
        }
    
        /**
         * 非标准时间格式化
         */
        public static Date formatDate(String time) {
            try {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String[] ts = time.split("T");
                String sub = ts[1].substring(0, 8);
                return sdf.parse(ts[0] + " " + sub);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        public static String formateTimeStamp(Long time) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return sdf.format(new Date(Long.parseLong(String.valueOf(time))));
        }
    
    
        // 获取第二天整点
        public static Date nextDay(int i) {
            Date date = formatYMDTime(new Date());
            Calendar calendar = Calendar.getInstance();
            if (date != null) {
                calendar.setTime(date);
                calendar.add(Calendar.DAY_OF_MONTH, i);
                return calendar.getTime();
            }
            return null;
        }
    
        /**
         * 时间戳转换成时间
         */
        public static String timeStampToTime(String s,String pattern) {
            long lt = new Long(s);
            return timeStampToTime(lt, pattern);
        }
    
    
        /**
         * 时间戳转换成时间
         */
        public static String timeStampToTime(Long s,String pattern) {
            SimpleDateFormat sdf = new SimpleDateFormat(pattern);
            Date date = new Date(s);
            return sdf.format(date);
        }
    
        public static String dateToTimeStamp(String data) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            try {
                Date date = sdf.parse(data);
                return String.valueOf(date.getTime());
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 获取指定小时时间 21:00
         */
        public static String getBeforeByHourTime(int hour) {
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:00");
            //(1)获取当前时间
            LocalDateTime date = LocalDateTime.now();
            //(2)获取当前时间的前几小时时间
            LocalDateTime localDateTime = date.minusHours(hour);
    
            return dateTimeFormatter.format(localDateTime);
        }
    
    
        public static Date takeAssignDateHour(Integer num,String pattern) {
            if (num == null || num == 0) {
                return new Date();
            }
            SimpleDateFormat df = new SimpleDateFormat(pattern);
            try {
                String res = takeStrAssignDateHour(num, pattern);
                return df.parse(res);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return new Date();
        }
    
    
        public static String takeStrAssignDateHour(Integer num,String pattern){
            SimpleDateFormat df = new SimpleDateFormat(pattern);
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) + num);
            return df.format(calendar.getTime());
        }
    
        public static Date strToDate(String date, String pattern){
            try {
                SimpleDateFormat df = new SimpleDateFormat(pattern);
                return df.parse(date);
            }catch (Exception e){
                e.printStackTrace();
            }
           return new Date();
        }
    
        public static String strToPatternStr(String date,String sourcePattern,String targetPattern){
            try {
                SimpleDateFormat df = new SimpleDateFormat(sourcePattern);
                SimpleDateFormat df2 = new SimpleDateFormat(targetPattern);
                Date parse = df.parse(date);
                return df2.format(parse);
            }catch (Exception e){
                e.printStackTrace();
            }
            return getNowTime(targetPattern,0);
        }
  • 相关阅读:
    成家撑家 不要妄自菲薄
    [文字20091204]佛说贪、嗔、痴、妒、慢、疑
    [文摘20091116]一生必看的88本书
    [文摘201009]演讲录全文:美国世界帝国战略与中国的危机 戴旭
    由 图标 加 文字 实现 按钮功能 的 图标按钮用户控件
    javascript Array扩展
    javascript Number对象
    纯CSS多级菜单2
    纯CSS相册2
    纯CSS多级菜单
  • 原文地址:https://www.cnblogs.com/padazala/p/15623918.html
Copyright © 2011-2022 走看看