当前位置: 代码迷 >> Java相关 >> 拾掇的java的日期DateUtil
  详细解决方案

拾掇的java的日期DateUtil

热度:38   发布时间:2016-04-22 19:47:10.0
整理的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();      }      }

 

  相关解决方案