• 日期处理工具


    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);
        }
    
    }
  • 相关阅读:
    从数据库表中查询日期最新的记录
    ArcGIS js api开发环境配置
    HRESULT:0x80070057 (E_INVALIDARG)
    ArcGIS js api三种查询功能
    sql设置字段默认值
    文件后缀与mime类型对应表
    关于dojo自定义类
    android用户登录验证
    java实现QQ互联登录
    springboot实现网站微信扫码登录
  • 原文地址:https://www.cnblogs.com/zj0208/p/10650695.html
Copyright © 2020-2023  润新知