14个常用的日期方法

前言

最近总和日期打交道,每次去写太麻烦,这里整理了14个日期常用的方法,可直接使用。


常量

 //======================日期格式化常量=====================//
    
        public static final String YYYY_MM_DDHHMMSS = "yyyy-MM-dd HH:mm:ss"; 
        public static final String YYYY_MM_DD = "yyyy-MM-dd"; 
        public static final String YYYY_MM = "yyyy-MM";
        public static final String YYYY = "yyyy";  
        
        public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
        public static final String YYYYMMDD = "yyyyMMdd";
        public static final String YYYYMM = "yyyyMM";  
        
        public static final String YYYYMMDDHHMMSS_1 = "yyyy/MM/dd HH:mm:ss";
        public static final String YYYY_MM_DD_1 = "yyyy/MM/dd";
        public static final String YYYY_MM_1 = "yyyy/MM";

1.获取当前时间

/**
         *   
         * 获取当前时间
         * @return
         * @see [类、类#方法、类#成员]
         */
        public static Date getCurrentDate()  
        {  
            return new Date();  
        }

2.获取当前系统时间字符串

/**
         *   
         * 获取当前系统时间字符串
         * @return
         * @see [类、类#方法、类#成员]
         */
        public static String getCurrDateToStr()  
        {  
            return dateToStr(getCurrentDate(),YYYY_MM_DDHHMMSS);  
        }  

3.以毫秒为单位返回当前时间

/**
        *   
        * 以毫秒为单位返回当前时间
        * @return
        * @see [类、类#方法、类#成员]
        */
        public static long getCurrentTimeMillis()  
        {  
            return System.currentTimeMillis();  
        }


4.自定义取值,Date类型转为String类型

/**
         *   
         * 自定义取值,Date类型转为String类型
         * @param date 日期
         * @param pattern 格式化常量
         * @return
         * @see [类、类#方法、类#成员]
         */
        public static String dateToStr(Date date, String pattern)
        {
            SimpleDateFormat format = null;
            
            if (null == date)
                return null;
            format = new SimpleDateFormat(pattern, Locale.getDefault());
            
            return format.format(date);
        }

5.自定义取值,String转换为Date

/**
         *  
         * 自定义取值,String转换为Date
         * @param str 日期字符串
         * @param pattern 格式化常量
         * @return
         * @see [类、类#方法、类#成员]
         */
        public static Date strToDate(String str, String pattern)  
        {  
            if (null==str||"".equals(str.trim()))  
                return null;  
            SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.getDefault());  
            try  
            {  
                return format.parse(str);  
            }  
            catch (ParseException e)  
            {  
                return null;  
            }  
        }  

6.在指定的日期上增加天数

/**
         *   
         * 在指定的日期上增加天数 
         * @param date 日期
         * @param day 天数
         * @return
         * @see [类、类#方法、类#成员]
         */
        public static Date addDay(Date date, int day)  
        {  
            if (null == date)  
                return null;  
            Calendar calendar = Calendar.getInstance(Locale.getDefault());  
            calendar.setTime(date);  
            calendar.add(Calendar.DATE, day);  
            return calendar.getTime();  
        }  

7.在指定的日期上减去天数

/** 
         * 在指定的日期上减去天数 
         *  
         * @param date 日期 
         * @param day 天数 
         * @return 
         */  
        public static Date subDay(Date date, int day)  
        {  
            if (null == date)  
                return null;  
            Calendar calendar = Calendar.getInstance(Locale.getDefault());  
            calendar.setTime(date);  
            calendar.add(Calendar.DATE, -day);  
            return calendar.getTime();  
        } 

8.为时间增加分钟

/**
         * 
         * 为时间增加分钟
         * @param date 日期
         * @param minute 分钟
         * @return
         * @see [类、类#方法、类#成员]
         */
        public static String addMinute(Date date, int minute)  
        {  
            if (null == date)  
                return null;  
            Calendar calendar = Calendar.getInstance(Locale.getDefault());  
            calendar.setTime(date);  
            calendar.add(Calendar.MINUTE, minute);  
            return dateToStr(calendar.getTime(),YYYY_MM_DDHHMMSS);  
        } 

9.为时间减去分钟

/**
         * 
         * 为时间减去分钟  
         * @param date 日期
         * @param minute 分钟
         * @return
         * @see [类、类#方法、类#成员]
         */
        public static String subMinute(Date date, int minute)  
        {  
            if (null == date)  
                return null;  
            Calendar calendar = Calendar.getInstance(Locale.getDefault());  
            calendar.setTime(date);  
            calendar.add(Calendar.MINUTE, -minute);  
            return dateToStr(calendar.getTime(),YYYY_MM_DDHHMMSS);  
        }  

10.两个日期大小比较

/** 
         * 两个日期大小比较
         *  
         * @param date1 
         * @param date2 
         * @return 后面的日期大的话,返回true ,第一个日期大返回false
         * @see [类、类#方法、类#成员] 
         */  
        public static boolean dateLastLarge(String date1, String date2)  
        {  
            Date d1 = strToDate(date1,YYYY_MM_DDHHMMSS);  
            Date d2 = strToDate(date2,YYYY_MM_DDHHMMSS);  
              
            return d1.before(d2);  
        }

11.判断时间是否超过一定的小时数

/** 
         *  
         * 判断时间是否超过一定的小时数 
         * @param date1 较大的时间
         * @param date2 较小的时间
         * @return 超过返回true,不超过返回false
         * @throws Exception 
         * @see [类、类#方法、类#成员] 
         */  
        public static boolean judgmentDate(String date1, String date2,float h)  
            throws Exception  
        {  
            String time1 = date1.substring(0, date1.lastIndexOf(" "));  
            String time2 = date1.substring(0, date1.lastIndexOf(" "));  
              
            SimpleDateFormat sdf = new SimpleDateFormat(YYYY_MM_DDHHMMSS);  
              
            Date start = sdf.parse(date1);  
              
            Date end = sdf.parse(date2);  
              
            long cha = end.getTime() - start.getTime();  
              
            if (cha < 0)  
            {  
                if(time1.equals(time2)){  
                    return true;  
                }else{  
                    return false;  
                }  
            }  
              
            double result = cha * 1.0 / (1000 * 60 * 60);  
              
            if (result >= h)  
            {  
                  
                return true;  
                  
            }  
            else  
            {  
                  
                return false;  
                  
            }  
        }  

12.获取当前日期往后一定的年数

/**
         *  
         * 获取当前日期往后一定的年数
         * @param year 年数
         * @return
         * @see [类、类#方法、类#成员]
         */
        public static String getCurrLastYear(int year)  
        {  
            SimpleDateFormat format = new SimpleDateFormat(YYYYMMDD);          
            Date date = new Date();  
            Calendar calendar = Calendar.getInstance(Locale.getDefault());  
            calendar.setTime(date);  
            calendar.add(Calendar.YEAR, year);  
            return format.format(calendar.getTime());     
              
        }  

13计算两个日期之间相差的天数

/** 
         *  
         * 计算两个日期之间相差的天数   
         * @param smdate 较小的时间  
         * @param bdate 较大的时间  
         * @return 相差天数  
         * @throws ParseException 
         * @see [类、类#方法、类#成员] 
         */  
        public static int daysBetween(Date smdate,Date bdate) throws ParseException      
        {      
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");    
            smdate=sdf.parse(sdf.format(smdate));    
            bdate=sdf.parse(sdf.format(bdate));    
            Calendar cal = Calendar.getInstance();      
            cal.setTime(smdate);      
            long time1 = cal.getTimeInMillis();                   
            cal.setTime(bdate);      
            long time2 = cal.getTimeInMillis();           
            long between_days=(time2-time1)/(1000*3600*24);    
                  
           return Integer.parseInt(String.valueOf(between_days));             
        } 

14.字符串的日期格式的计算 

/** 
         *  
         * 字符串的日期格式的计算  
         * @param smdate 较小的时间  
         * @param bdate 较大的时间  
         * @return 相差天数  
         * @throws ParseException 
         * @see [类、类#方法、类#成员] 
         */  
        public static int daysBetween(String smdate,String bdate) throws ParseException{    
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");    
            Calendar cal = Calendar.getInstance();      
            cal.setTime(sdf.parse(smdate));      
            long time1 = cal.getTimeInMillis();                   
            cal.setTime(sdf.parse(bdate));      
            long time2 = cal.getTimeInMillis();           
            long between_days=(time2-time1)/(1000*3600*24);    
                  
           return Integer.parseInt(String.valueOf(between_days));       
        }    

资源下载


转载于:https://www.cnblogs.com/tongrui/p/6622003.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值