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

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.apache.commons.lang3.time.DateFormatUtils;
    
    /**
     * 日期工具类, 继承org.apache.commons.lang.time.DateUtils类
     * 
     * @author dp
     */
    public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
    
        private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss",
                "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM", "yyyyMMdd" };
    
        /**
         * 得到当前日期字符串 格式(yyyy-MM-dd)
         */
        public static String getDate() {
            return getDate("yyyy-MM-dd");
        }
    
        /**
         * 得到当前日期字符串 格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
         */
        public static String getDate(String pattern) {
            return DateFormatUtils.format(new Date(), pattern);
        }
    
        /**
         * 得到日期字符串 默认格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
         */
        public static String formatDate(Date date, Object... pattern) {
            String formatDate = null;
            if (pattern != null && pattern.length > 0) {
                formatDate = DateFormatUtils.format(date, pattern[0].toString());
            } else {
                formatDate = DateFormatUtils.format(date, "yyyy-MM-dd");
            }
            return formatDate;
        }
    
        /**
         * 得到日期时间字符串,转换格式(yyyy-MM-dd HH:mm:ss)
         */
        public static String formatDateTime(Date date) {
            return formatDate(date, "yyyy-MM-dd HH:mm:ss");
        }
    
        /**
         * 得到当前时间字符串 格式(HH:mm:ss)
         */
        public static String getTime() {
            return formatDate(new Date(), "HH:mm:ss");
        }
    
        /**
         * 得到当前日期和时间字符串 格式(yyyy-MM-dd HH:mm:ss)
         */
        public static String getDateTime() {
            return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
        }
    
        /**
         * 得到当前年份字符串 格式(yyyy)
         */
        public static String getYear() {
            return formatDate(new Date(), "yyyy");
        }
    
        /**
         * 得到当前月份字符串 格式(MM)
         */
        public static String getMonth() {
            return formatDate(new Date(), "MM");
        }
    
        /**
         * 得到当天字符串 格式(dd)
         */
        public static String getDay() {
            return formatDate(new Date(), "dd");
        }
    
        /**
         * 得到当前星期字符串 格式(E)星期几
         */
        public static String getWeek() {
            return formatDate(new Date(), "E");
        }
    
        /**
         * 日期型字符串转化为日期 格式 { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm",
         * "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy.MM.dd",
         * "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm" }
         */
        public static Date parseDate(Object str) {
            if (str == null) {
                return null;
            }
            try {
                return parseDate(str.toString(), parsePatterns);
            } catch (ParseException e) {
                return null;
            }
        }
    
        /**
         * 获取过去的天数
         * 
         * @param date
         * @return
         */
        public static long pastDays(Date date) {
            long t = new Date().getTime() - date.getTime();
            return t / (24 * 60 * 60 * 1000);
        }
    
        /**
         * 获取过去的小时
         * 
         * @param date
         * @return
         */
        public static long pastHour(Date date) {
            long t = new Date().getTime() - date.getTime();
            return t / (60 * 60 * 1000);
        }
    
        /**
         * 获取过去的分钟
         * 
         * @param date
         * @return
         */
        public static long pastSecond(Date date, Date endDate) {
            long t = endDate.getTime() - date.getTime();
            return t / 1000;
        }
    
        /**
         * 获取过去的秒
         * 
         * @param date
         * @return
         */
        public static long pastMinutes(Date date) {
            long t = new Date().getTime() - date.getTime();
            return t / (60 * 1000);
        }
    
        /**
         * 转换为时间(天,时:分:秒.毫秒)
         * 
         * @param timeMillis
         * @return
         */
        public static String formatDateTime(long timeMillis) {
            long day = timeMillis / (24 * 60 * 60 * 1000);
            long hour = (timeMillis / (60 * 60 * 1000) - day * 24);
            long min = ((timeMillis / (60 * 1000)) - day * 24 * 60 - hour * 60);
            long s = (timeMillis / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
            long sss = (timeMillis - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000 - min * 60 * 1000 - s * 1000);
            return (day > 0 ? day + "," : "") + hour + ":" + min + ":" + s + "." + sss;
        }
    
        /**
         * 把分钟转换成多少小时多少分钟
         * 
         * @param time
         * @return
         */
        public static String getHour(int time) {
            int hours = (int) Math.floor(time / 60);
            int minute = time % 60;
            return hours + "小时" + minute + "分钟";
        }
    
        /**
         * 获取两个日期之间的天数
         * 
         * @param before
         * @param after
         * @return
         */
        public static double getDistanceOfTwoDate(Date before, Date after) {
            double beforeTime = before.getTime();
            double afterTime = after.getTime();
            return (afterTime - beforeTime) / (1000 * 60 * 60 * 24);
        }
    
        /**
         * 获取某一时间段内的 年月日时分(格式yyyy-MM-dd HH:mm)
         * 这里的时间格式自定义
         * @param startDate
         *            2014-01-01 18:00
         * @param endDate
         *            2014-01-02 17:59
         * @return
         */
        public static ArrayList<String> getMinuteByDate(String startDate, String endDate) {
            ArrayList<String> list = new ArrayList<String>();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            try {
                Date date0 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(startDate);
                Date date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(endDate);
                Calendar cal = Calendar.getInstance();
                cal.setTime(date0);
                while (cal.getTime().compareTo(date1) < 0) {
                    cal.add(Calendar.MINUTE, 1);
                    list.add(sdf.format(cal.getTime()));
                }
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return list;
        }
    }
  • 相关阅读:
    Python通过多线程实现 `异步`
    Linux(六) 处理用户输入
    Linux(五) 更多结构化命令
    Linux(四) 使用结构化命令
    Linux(三) 科学计算
    Linux(二) Shell脚本
    python 登陆接口
    学习的小建议
    干货
    ThinkPhp5 自定义异常处理类
  • 原文地址:https://www.cnblogs.com/404code/p/10909334.html
Copyright © 2011-2022 走看看