zoukankan      html  css  js  c++  java
  • 日期处理工具

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    import org.springframework.util.StringUtils;
    
    /**
     * 日期处理工具
     */
    public class DateUtil {
    
        /*********************************************************************************************/
        /****************************************** 日期的解析 ********************************************/
        /*********************************************************************************************/
    
        // 常用时间格式
        private static String yyyyMMdd = "yyyyMMdd";
        private static String yyyyMMddHHmmss = "yyyyMMddHHmmss";
        private static String yyyyMMddHHmmssSSS = "yyyyMMddHHmmssSSS";
    
        /**
         * 解析时间
         * 
         * @param formatDate        需要解析的格式化的时间串
         * @return
         */
        public static Date parseDate(String formatDate) throws ParseException {
            if (null != formatDate && !"".equals(formatDate)) {
                // 清除日期串中的非数字部分
                formatDate = formatDate.replaceAll("\D", "");
    
                // 根据日期串的不同长度,初始化不同的解析工具
                SimpleDateFormat sdf = null;
                if (formatDate.length() == yyyyMMdd.length()) {
                    sdf = new SimpleDateFormat(yyyyMMdd);
                }
                if (formatDate.length() == yyyyMMddHHmmss.length()) {
                    sdf = new SimpleDateFormat(yyyyMMddHHmmss);
                }
                if (formatDate.length() == yyyyMMddHHmmssSSS.length()) {
                    sdf = new SimpleDateFormat(yyyyMMddHHmmssSSS);
                }
    
                // 纯数字日期的解析
                if (null != sdf) {
                    return sdf.parse(formatDate);
                }
            }
            return null;
        }
    
        /*********************************************************************************************/
        /****************************************** 日期的计算 ********************************************/
        /*********************************************************************************************/
    
        public static Date addYears(Date date, Integer years) {
            return dateCalculate(date, years, null, null, null, null, null, null);
        }
    
        public static Date addMonths(Date date, Integer months) {
            return dateCalculate(date, null, months, null, null, null, null, null);
        }
    
        public static Date addDays(Date date, Integer days) {
            return dateCalculate(date, null, null, days, null, null, null, null);
        }
    
        public static Date addHours(Date date, Integer hours) {
            return dateCalculate(date, null, null, null, hours, null, null, null);
        }
    
        public static Date addMinutes(Date date, Integer minutes) {
            return dateCalculate(date, null, null, null, null, minutes, null, null);
        }
    
        public static Date addSeconds(Date date, Integer seconds) {
            return dateCalculate(date, null, null, null, null, null, seconds, null);
        }
    
        public static Date addMilliseconds(Date date, Integer milliseconds) {
            return dateCalculate(date, null, null, null, null, null, null, milliseconds);
        }
    
        /**
         * 日期的计算
         * 
         * @param date            要计算的日期
         * @param years            需要在date上增加的年数
         * @param months        需要在date上增加的月数
         * @param days            需要在date上增加的天数
         * @param hours            需要在date上增加的小时数
         * @param minutes        需要在date上增加的分钟数
         * @param seconds        需要在date上增加的秒数
         * @param milliseconds    需要在date上增加的豪秒数
         * @return
         */
        public static Date dateCalculate(Date date, Integer years, Integer months, Integer days, Integer hours,
                Integer minutes, Integer seconds, Integer milliseconds) {
            // 日期无法计算的情况
            if (null == date) {
                return null;
            }
    
            // 日期可以计算的情况
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
    
            if (null != years) {
                calendar.add(Calendar.YEAR, years);
            }
            if (null != months) {
                calendar.add(Calendar.MONTH, months);
            }
            if (null != days) {
                calendar.add(Calendar.DAY_OF_MONTH, days);
            }
            if (null != hours) {
                calendar.add(Calendar.HOUR_OF_DAY, hours);
            }
            if (null != minutes) {
                calendar.add(Calendar.MINUTE, minutes);
            }
            if (null != seconds) {
                calendar.add(Calendar.SECOND, seconds);
            }
            if (null != milliseconds) {
                calendar.add(Calendar.MILLISECOND, milliseconds);
            }
    
            // 返回计算完毕后的数据
            return calendar.getTime();
        }
    
        /*********************************************************************************************/
        /****************************************** 日期的格式化 ******************************************/
        /*********************************************************************************************/
    
        /**
         * 日期格式化
         * 
         * @param date     需要格式化的日期
         * @return        使用默认日期格式,格式化后的日期
         */
        public static String format(Date date) {
            return format(date, null);
        }
    
        /**
         * 日期格式化
         * 
         * @param date        需要格式化的日期
         * @param format    日期的格式, 未设置时, 使用默认日期格式
         * @return            格式化后的日期
         */
        public static String format(Date date, String format) {
            if (StringUtils.isEmpty(format)) {
                format = "yyyy-MM-dd HH:mm:ss";
            }
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.format(date);
        }
    
    }
  • 相关阅读:
    总结php删除html标签和标签内的内容的方法
    php正则验证手机、邮箱
    php正则匹配到字符串里面的a标签
    PHP 使用try catch,捕获异常
    Apache漏洞利用与安全加固实例分析
    php json接口demo
    PHP 把MYSQL重复ID 二维数组重组为三维数组
    文件扩展关联命令(assoc)
    修改文件属性(attrib)
    文件比较命令(fc)
  • 原文地址:https://www.cnblogs.com/zj0208/p/10650695.html
Copyright © 2011-2022 走看看