zoukankan      html  css  js  c++  java
  • 整理的java的日期DateUtil

    package cn.knet.data.untils;
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    
    /**
     * yyyy-MM-dd HH:mm:ss
     * @author zhaoyb
     *
     */
    public class DateUtil {
    
        /**
         * 把日期字符串格式化成日期类型
         * @param dateStr
         * @param format
         * @return
         */
        public static Date convert2Date(String dateStr, String format) {  
            SimpleDateFormat simple = new SimpleDateFormat(format); 
            try {  
                simple.setLenient(false);  
                return simple.parse(dateStr);  
            } catch (Exception e) {  
                return  null;  
            }  
         }  
        
        
        /**
         * 把日期类型格式化成字符串
         * @param date
         * @param format
         * @return
         */
        public static String convert2String(Date date, String format) {
            SimpleDateFormat formater = new SimpleDateFormat(format);
            try {
                return formater.format(date);
            } catch (Exception e) {
                return null;
            }
        }
        
        /**
         * 转sql的time格式
         * @param date
         * @return
         */
        public static java.sql.Timestamp convertSqlTime(Date date){
            java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());
            return timestamp;
        }
        
        /**
         * 转sql的日期格式
         * @param date
         * @return
         */
        public static java.sql.Date convertSqlDate(Date date){
            java.sql.Date Datetamp = new java.sql.Date(date.getTime());
            return Datetamp;
        }
        
        
        /**
         * 获取当前日期
         * @param format
         * @return
         */
        public static String getCurrentDate(String format) {
            return new SimpleDateFormat(format).format(new Date());
        }
        
        /**
         * 获取时间戳
         * @return
         */
        public static long getTimestamp()
        {
            return System.currentTimeMillis();
        }
        
        /**
         * 获取月份的天数
         * @param year
         * @param month
         * @return
         */
        public static int getDaysOfMonth(int year, int month) {
            Calendar calendar = Calendar.getInstance();
            calendar.set(year, month - 1, 1);
            return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        }
        
        /**
         * 获取日期的年
         * @param date
         * @return
         */
        public static int getYear(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return calendar.get(Calendar.YEAR);
        }
        
        /**
         * 获取日期的月
         * @param date
         * @return
         */
        public static int getMonth(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return calendar.get(Calendar.MONTH) + 1;
        }
        
        /**
         * 获取日期的日
         * @param date
         * @return
         */
        public static int getDay(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return calendar.get(Calendar.DATE);
        }
        
        /**
         * 获取日期的时
         * @param date
         * @return
         */
        public static int getHour(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return calendar.get(Calendar.HOUR);
        }
        
        /**
         * 获取日期的分种
         * @param date
         * @return
         */
        public static int getMinute(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return calendar.get(Calendar.MINUTE);
        }
        
        /**
         * 获取日期的秒
         * @param date
         * @return
         */
        public static int getSecond(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return calendar.get(Calendar.SECOND);
        }
        
        /**
         * 获取星期几
         * @param date
         * @return
         */
        public static int getWeekDay(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
            return dayOfWeek-1;
        }
        
        /**
         * 获取哪一年共有多少周
         * @param year
         * @return
         */
        public static int getMaxWeekNumOfYear(int year) {
            Calendar c = new GregorianCalendar();
            c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);
            return getWeekNumOfYear(c.getTime());
        }
        
        /**
         * 取得某天是一年中的多少周
         * @param date
         * @return
         */
        public static int getWeekNumOfYear(Date date) {
            Calendar c = new GregorianCalendar();
            c.setFirstDayOfWeek(Calendar.MONDAY);
            c.setMinimalDaysInFirstWeek(7);
            c.setTime(date);
            return c.get(Calendar.WEEK_OF_YEAR);
        }
        
        /**
         * 取得某天所在周的第一天
         * @param year
         * @return
         */
        public static Date getFirstDayOfWeek(Date date) {
            Calendar c = new GregorianCalendar();
            c.setFirstDayOfWeek(Calendar.MONDAY);
            c.setTime(date);
            c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());
            return c.getTime();
        }
        
        /**
         * 取得某天所在周的最后一天
         * @param date
         * @return
         */
        public static Date getLastDayOfWeek(Date date) {
            Calendar c = new GregorianCalendar();
            c.setFirstDayOfWeek(Calendar.MONDAY);
            c.setTime(date);
            c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6);
            return c.getTime();
        }
        
        /**
         * 取得某年某周的第一天 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周,2009-01-05为2009年第一周的第一天
         * @param year
         * @param week
         * @return
         */
        public static Date getFirstDayOfWeek(int year, int week) {
            Calendar calFirst = Calendar.getInstance();
            calFirst.set(year, 0, 7);
            Date firstDate = getFirstDayOfWeek(calFirst.getTime());
    
            Calendar firstDateCal = Calendar.getInstance();
            firstDateCal.setTime(firstDate);
    
            Calendar c = new GregorianCalendar();
            c.set(Calendar.YEAR, year);
            c.set(Calendar.MONTH, Calendar.JANUARY);
            c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE));
    
            Calendar cal = (GregorianCalendar) c.clone();
            cal.add(Calendar.DATE, (week - 1) * 7);
            firstDate = getFirstDayOfWeek(cal.getTime());
    
            return firstDate;
        }
        
        /**
         * 取得某年某周的最后一天 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周, 2009-01-04为
         * 2008年最后一周的最后一天
         * @param year
         * @param week
         * @return
         */
        public static Date getLastDayOfWeek(int year, int week) {
            Calendar calLast = Calendar.getInstance();
            calLast.set(year, 0, 7);
            Date firstDate = getLastDayOfWeek(calLast.getTime());
    
            Calendar firstDateCal = Calendar.getInstance();
            firstDateCal.setTime(firstDate);
    
            Calendar c = new GregorianCalendar();
            c.set(Calendar.YEAR, year);
            c.set(Calendar.MONTH, Calendar.JANUARY);
            c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE));
    
            Calendar cal = (GregorianCalendar) c.clone();
            cal.add(Calendar.DATE, (week - 1) * 7);
            Date lastDate = getLastDayOfWeek(cal.getTime());
    
            return lastDate;
        }
        
        
        private static Date add(Date date, int calendarField, int amount) {
            if (date == null) {
                throw new IllegalArgumentException("The date must not be null");
            } else {
                Calendar c = Calendar.getInstance();
                c.setTime(date);
                c.add(calendarField, amount);
                return c.getTime();
            }
        }
        
        /*
         * 1则代表的是对年份操作, 2是对月份操作, 3是对星期操作, 5是对日期操作, 11是对小时操作, 12是对分钟操作, 13是对秒操作,
         * 14是对毫秒操作
         */
    
        /**
         * 增加年
         * @param date
         * @param amount
         * @return
         */
        public static Date addYears(Date date, int amount) {
            return add(date, 1, amount);
        }
    
        /**
         * 增加月
         * @param date
         * @param amount
         * @return
         */
        public static Date addMonths(Date date, int amount) {
            return add(date, 2, amount);
        }
    
        /**
         * 增加周
         * @param date
         * @param amount
         * @return
         */
        public static Date addWeeks(Date date, int amount) {
            return add(date, 3, amount);
        }
    
        /**
         * 增加天
         * @param date
         * @param amount
         * @return
         */
        public static Date addDays(Date date, int amount) {
            return add(date, 5, amount);
        }
    
        /**
         * 增加时
         * @param date
         * @param amount
         * @return
         */
        public static Date addHours(Date date, int amount) {
            return add(date, 11, amount);
        }
    
        /**
         * 增加分
         * @param date
         * @param amount
         * @return
         */
        public static Date addMinutes(Date date, int amount) {
            return add(date, 12, amount);
        }
    
        /**
         * 增加秒
         * @param date
         * @param amount
         * @return
         */
        public static Date addSeconds(Date date, int amount) {
            return add(date, 13, amount);
        }
    
        /**
         * 增加毫秒
         * @param date
         * @param amount
         * @return
         */
        public static Date addMilliseconds(Date date, int amount) {
            return add(date, 14, amount);
        }
        
        
        
       /**
        * time差
        * @param before
        * @param after
        * @return
        */
       public static long diffTimes(Date before, Date after){
           return after.getTime() - before.getTime();
       }
       
       /**
        * 秒差
        * @param before
        * @param after
        * @return
        */
       public static long diffSecond(Date before, Date after){
           return (after.getTime() - before.getTime())/1000;
       }
       
       /**
        * 分种差
        * @param before
        * @param after
        * @return
        */
       public static int diffMinute(Date before, Date after){
           return (int)(after.getTime() - before.getTime())/1000/60;
       }
       
       /**
        * 时差
        * @param before
        * @param after
        * @return
        */
       public static int diffHour(Date before, Date after){
           return (int)(after.getTime() - before.getTime())/1000/60/60;
       }
        
        /**
         * 天数差
         * @param date1
         * @param date2
         * @return
         */
        public static int diffDay(Date before, Date after) {
            return Integer.parseInt(String.valueOf(((after.getTime() - before.getTime()) / 86400000)));
        }
        
        /**
         * 月差
         * @param before
         * @param after
         * @return
         */
        public static int diffMonth(Date before, Date after){
            int monthAll=0;
            int yearsX = diffYear(before,after);
            Calendar c1 = Calendar.getInstance();
            Calendar c2 = Calendar.getInstance();
            c1.setTime(before);
            c2.setTime(after);
            int monthsX = c2.get(Calendar.MONTH) - c1.get(Calendar.MONTH);
            monthAll=yearsX*12+monthsX;
            int daysX =c2.get(Calendar.DATE) - c1.get(Calendar.DATE);
            if(daysX>0){
                monthAll=monthAll+1;
            }
            return monthAll;
        }
        
        /**
         * 年差
         * @param before
         * @param after
         * @return
         */
        public static int diffYear(Date before, Date after) {
            return getYear(after) - getYear(before);
        }
        
        /**
         * 设置23:59:59
         * @param date
         * @return
         */
        public static Date setEndDay(Date date) {  
            Calendar calendar = Calendar.getInstance();  
            calendar.setTime(date);  
            calendar.set(Calendar.HOUR_OF_DAY, 23);  
            calendar.set(Calendar.MINUTE, 59);  
            calendar.set(Calendar.SECOND, 59);  
            return calendar.getTime();  
        } 
        
        /**
         * 设置00:00:00
         * @param date
         * @return
         */
        public static Date setStartDay(Date date) {  
            Calendar calendar = Calendar.getInstance();  
            calendar.setTime(date);  
            calendar.set(Calendar.HOUR_OF_DAY, 00);  
            calendar.set(Calendar.MINUTE, 00);  
            calendar.set(Calendar.SECOND, 00);  
            return calendar.getTime();  
        }  
        
    }
  • 相关阅读:
    一个强迫症用户的锤子手机使用体验
    起点——2015年终总结
    用“MEAN”技术栈开发web应用(三)用mongodb搭建数据库
    用“MEAN”技术栈开发web应用(二)express搭建服务端框架
    SpringBoot/Spring使用@Value进行属性绑定(尚硅谷)
    springboot/spring使用ConfigurationProperties注解读取自定义属性(尚硅谷)
    Spring Boot项目中@SpringBootTest测试的时候卡住,一直Resolving Maven dependencies...
    ASP.NET项目:请使用语言版本6或者更高版本
    安装CUDA坑:CUDA driver version is insufficient for CUDA runtime version
    Failed to load the native TensorFlow runtime. ImportError: libcuda.so.1: cannot open shared object file: No such file or directory
  • 原文地址:https://www.cnblogs.com/feiyun126/p/4778545.html
Copyright © 2011-2022 走看看