commons-lang3:DateUtils

/**
     * 以秒爲標準時間的毫秒數
     */
    public static final long MILLIS_PER_SECOND = 1000java

    /**
     *以分鐘爲標準時間的毫秒數
     */
    public static final long MILLIS_PER_MINUTE = 60 * MILLIS_PER_SECOND函數

    /**
     *以小時爲標準時間的毫秒數
     */
    public static final long MILLIS_PER_HOUR = 60 * MILLIS_PER_MINUTE工具

    /**
     * 以天爲標準時間的毫秒數
     */
    public static final long MILLIS_PER_DAY = 24 * MILLIS_PER_HOUR.net

    /**
     * 這個類型是半個月, 因此這能夠表明日期是上仍是下半個月 。
     */
    public static final int SEMI_MONTH = 1001對象

    /**
     * 周範圍, 從星期日開始 。
     */
    public static final int RANGE_WEEK_SUNDAY = 1字符串

    /**
     * 周範圍,從星期一開始 。
     */
    public static final int RANGE_WEEK_MONDAY = 2get

    /**
     * 周範圍,從關注的那天開始。
     */
    public static final int RANGE_WEEK_RELATIVE = 3it

    /**
     * 周範圍,以關注的天爲中心。
     */
    public static final int RANGE_WEEK_CENTER = 4io

     /**
     * 月範圍,從星期日開始 。
     */
    public static final int RANGE_MONTH_SUNDAY = 5class

    /**
     * 月範圍,從星期一開始 。
     */
    public static final int RANGE_MONTH_MONDAY = 6

     /**
     * 不該在標準編成構造獲取實列, 而應該直接使用類中的靜態方法,如:DateUtils.parseDate(str) 。
     * 此構造函數意在容許須要一個javabeen實列的工具中使用 。  
     */
    public DateUtils()

    /**
     * 判斷兩個日期時間是不是同一天 。
     *
     * @param date1  第一個日期,不可修改,非null
     * @param date2  第二個日期,不可修改,非null
     */
    public static boolean isSameDay(final Date date1, final Date date2)

    /**
     * 判斷兩個日曆時間是不是同一天 。   
     *
     * @param cal1  第一個日曆,不可修改,非null
     * @param cal2  第二個日曆,不可修改,非null
     */
    public static boolean isSameDay(final Calendar cal1, final Calendar cal2)

    /**
     * 判斷兩個日期是否相同
     * 這種方法比較兩個對象的毫秒時間 
     *
     * @param date1  第一個日期,不可修改,非null
     * @param date2  第二個日期,不可修改,非null
     */
    public static boolean isSameInstant(final Date date1, final Date date2)

    /**
     * 判斷兩個日曆是否相同
     * 這種方法比較兩個對象的毫秒時間 
     *
     * @param cal1  第一個日曆,不可修改,非null
     * @param cal2  第二個日曆,不可修改,非null
     */
    public static boolean isSameInstant(final Calendar cal1, final Calendar cal2)

    /**
     * 判斷兩個日曆本地時間是否相同
     * 除了比較數值外兩個日曆對象的類型還要相同
     *
     * @param cal1  第一個日曆,不可修改,非null
     * @param cal2  第二個日曆,不可修改,非null
     */
    public static boolean isSameLocalTime(final Calendar cal1, final Calendar cal2)

    /**
     * 嘗試用parsePatterns中各類不一樣的日期格式解析表明時間的字符串str 。
     * 
     * 解析時會逐個使用parsePatterns中的格式,若是都沒有匹配上, 則拋出異常ParseException 。
     * 
     * @param str  被解析的時間字符串,非null
     * @param parsePatterns  用於解析str的時間格式,有一個或幾個,非null
     */
    public static Date parseDate(final String str, final String... parsePatterns) throws ParseException

    /**
     * 嘗試用parsePatterns中各類不一樣的日期格式解析表明時間的字符串str 。
     * 解析時會使用給定的日期格式符locale 。
     * 
     * 解析時會逐個使用parsePatterns中的格式,若是都沒有匹配上, 則拋出異常ParseException 。
     * 
     * @param str  被解析的時間字符串,非null
     * @param locale 使用locale中的日期格式符,若是爲null,則使用系統默認的locale
     * @param parsePatterns  用於解析str的時間格式,有一個或幾個,非null
     */
    public static Date parseDate(final String str, final Locale locale, final String... parsePatterns) throws ParseException

    /**
     * 嘗試用parsePatterns中各類不一樣的日期格式解析表明時間的字符串str 。
     *
     * 解析時會逐個使用parsePatterns中的格式,若是都沒有匹配上, 則拋出異常ParseException 。
     * 解析器解析嚴格不容許的日期, 如:"February 942, 1996" 。
     * 
     * @param str  被解析的時間字符串,非null
     * @param parsePatterns  用於解析str的時間格式,有一個或幾個,非null
     */
    public static Date parseDateStrictly(final String str, final String... parsePatterns) throws ParseException

    /**
     * 嘗試用parsePatterns中各類不一樣的日期格式解析表明時間的字符串str 。
     * 解析時會使用給定的日期格式符locale 。
     *
     * 解析時會逐個使用parsePatterns中的格式,若是都沒有匹配上, 則拋出異常ParseException 。
     * 解析器解析嚴格不容許的日期, 如:"February 942, 1996" 。
     * 
     * @param str  被解析的時間字符串,非null
     * @param locale 使用locale中的日期格式符,若是爲null,則使用系統默認的locale
     * @param parsePatterns  用於解析str的時間格式,有一個或幾個,非null
     */
    public static Date parseDateStrictly(final String str, final Locale locale, final String... parsePatterns) throws ParseException

    /**
     * 在日期date上增長amount年 。
     *
     * @param date  處理的日期,非null
     * @param amount  要加的年數,可能爲負數
     */
    public static Date addYears(final Date date, final int amount)

    /**
     * 在日期date上增長amount月 。
     *
     * @param date  處理的日期,非null
     * @param amount  要加的月數,可能爲負數
     */
    public static Date addMonths(final Date date, final int amount)

    /**
     * 在日期date上增長amount周 。
     *
     * @param date  處理的日期,非null
     * @param amount  要加的週數,可能爲負數
     */
    public static Date addWeeks(final Date date, final int amount)

    /**
     * 在日期date上增長amount天 。
     *
     * @param date  處理的日期,非null
     * @param amount  要加的天數,可能爲負數
     */
    public static Date addDays(final Date date, final int amount)

    /**
     * 在日期date上增長amount小時 。
     *
     * @param date  處理的日期,非null
     * @param amount  要加的小時數,可能爲負數
     */
    public static Date addHours(final Date date, final int amount)

    /**
     * 在日期date上增長amount分鐘 。
     *
     * @param date  處理的日期,非null
     * @param amount  要加的分鐘數,可能爲負數
     */
    public static Date addMinutes(final Date date, final int amount)

    /**
     * 在日期date上增長amount秒 。
     *
     * @param date  處理的日期,非null
     * @param amount  要加的秒數,可能爲負數
     */
    public static Date addSeconds(final Date date, final int amount)

    /**
     * 在日期date上增長amount 毫秒 。
     *
     * @param date  處理的日期,非null
     * @param amount  要加的毫秒數,可能爲負數
     */
    public static Date addMilliseconds(final Date date, final int amount)

     /**
     * 給日期data設置一個新的年份 。
     *
     * @param date 處理的日期,非null
     * @param amount 要設置的年份
     */
    public static Date setYears(final Date date, final int amount)

     /**
     * 給日期data設置一個新的月份 。
     *
     * @param date 處理的日期,非null
     * @param amount 要設置的月份
     */
    public static Date setMonths(final Date date, final int amount)

    /**
     * 給日期data設置一個新的天 。
     *
     * @param date 處理的日期,非null
     * @param amount 要設置的天
     */
    public static Date setDays(final Date date, final int amount)

    /**
     * 給日期data設置一個新的小時 。
     *
     * @param date 處理的日期,非null
     * @param amount 要設置的小時
     */
    public static Date setHours(final Date date, final int amount)

     /**
     * 給日期data設置一個新的分鐘 。
     *
     * @param date 處理的日期,非null
     * @param amount 要設置的分鐘
     */
    public static Date setMinutes(final Date date, final int amount)

    /**
     * 給日期data設置一個新的秒 。
     *
     * @param date 處理的日期,非null
     * @param amount 要設置的秒
     */
    public static Date setSeconds(final Date date, final int amount)

    /**
     * 給日期data設置一個新的毫秒 。
     *
     * @param date 處理的日期,非null
     * @param amount 要設置的毫秒
     */
    public static Date setMilliseconds(final Date date, final int amount)

    /**
     * 將一個日期放到日曆中 。
     */
    public static Calendar toCalendar(final Date date)

    /**
     * 根據閾值field四捨五入日曆date 。
     *
     * 例如, 若是你的時間是 28 Mar 2002 13:45:01.231,
     * 若是field爲HOUR,它將返回 28 Mar 2002 14:00:00.000;
     * 若是field爲MONTH,它將返回 1 April 2002 0:00:00.000 。
     * 
     * @param date  處理的日期,非null
     * @param field  閾值
     */
    public static Date round(final Date date, final int field)

    /**
     * 根據閾值field四捨五入日曆date 。
     *
     * 例如, 若是你的時間是 28 Mar 2002 13:45:01.231,
     * 若是field爲HOUR,它將返回 28 Mar 2002 14:00:00.000;
     * 若是field爲MONTH,它將返回 1 April 2002 0:00:00.000 。
     * 
     * @param date  處理的日期,非null
     * @param field  閾值  
     */
    public static Calendar round(final Calendar date, final int field)

    /**
     * 根據閾值field四捨五入日曆date 。
     *
     * 例如, 若是你的時間是 28 Mar 2002 13:45:01.231,
     * 若是field爲HOUR,它將返回 28 Mar 2002 14:00:00.000;
     * 若是field爲MONTH,它將返回 1 April 2002 0:00:00.000 。
     * 
     * @param date  處理的日期,非null
     * @param field  閾值 
     */
    public static Date round(final Object date, final int field)

    /**
     * 根據閾值field截取日期date 。
     *
     * 例如, 若是你的時間是 28 Mar 2002 13:45:01.231,
     * 若是field爲HOUR,它將返回 28 Mar 2002 13:00:00.000;
     * 若是field爲MONTH,它將返回 1 Mar 2002 0:00:00.000 。
     * 
     * @param date  處理的日期,非null
     * @param field  閾值 
     */
    public static Date truncate(final Date date, final int field)

     /**
     * 根據閾值field截取日曆date 。
     *
     * 例如, 若是你的時間是 28 Mar 2002 13:45:01.231,
     * 若是field爲HOUR,它將返回 28 Mar 2002 13:00:00.000;
     * 若是field爲MONTH,它將返回 1 Mar 2002 0:00:00.000 。
     * 
     * @param date  處理的日期,非null
     * @param field  閾值
     */
    public static Calendar truncate(final Calendar date, final int field)

    /**
     * 根據閾值field截取日期date 。
     *
     * 例如, 若是你的時間是 28 Mar 2002 13:45:01.231,
     * 若是field爲HOUR,它將返回 28 Mar 2002 13:00:00.000;
     * 若是field爲MONTH,它將返回 1 Mar 2002 0:00:00.000 。
     * 
     * @param date  處理的日期,非null
     * @param field  閾值
     */
    public static Date truncate(final Object date, final int field)

    /**
     * 根據閾值field向上舍入日期date 。
     *
     * 例如, 若是你的時間是 28 Mar 2002 13:45:01.231,
     * 若是field爲HOUR,它將返回 28 Mar 2002 14:00:00.000;
     * 若是field爲MONTH,它將返回 1 Apr 2002 0:00:00.000 。
     * 
     * @param date  處理的日期,非null
     * @param field  閾值
     */
    public static Date ceiling(final Date date, final int field)

    /**
     * 根據閾值field向上舍入日期date 。
     *
     * 例如, 若是你的時間是 28 Mar 2002 13:45:01.231,
     * 若是field爲HOUR,它將返回 28 Mar 2002 14:00:00.000;
     * 若是field爲MONTH,它將返回 1 Apr 2002 0:00:00.000 。
     * 
     * @param date  處理的日期,非null
     * @param field  閾值
     */
    public static Calendar ceiling(final Calendar date, final int field)

    /**
     * 根據閾值field向上舍入日期date 。
     *
     * 例如, 若是你的時間是 28 Mar 2002 13:45:01.231,
     * 若是field爲HOUR,它將返回 28 Mar 2002 14:00:00.000;
     * 若是field爲MONTH,它將返回 1 Apr 2002 0:00:00.000 。
     * 
     * @param date  處理的日期,非null
     * @param field  閾值
     */
    public static Date ceiling(final Object date, final int field)

    /**
     * 根據指定的時間focus和範圍類型rangeStyle構建一個時間範圍迭代器 。
     *
     * 如傳入的時間是Thursday, July 4, 2002,範圍類型是RANGE_MONTH_SUNDAY,
     * 則返回迭代器的範圍是從Sunday, June 30, 2002 到 Saturday, August 3, 2002
     *
     * @param focus  指定的時間
     * @param rangeStyle  範圍類型,值必須是以下之一:
     * DateUtils.RANGE_MONTH_SUNDAY, 
     * DateUtils.RANGE_MONTH_MONDAY,
     * DateUtils.RANGE_WEEK_SUNDAY,
     * DateUtils.RANGE_WEEK_MONDAY,
     * DateUtils.RANGE_WEEK_RELATIVE,
     * DateUtils.RANGE_WEEK_CENTER
     */
    public static Iterator<Calendar> iterator(final Date focus, final int rangeStyle)

    /**
     * 根據指定的時間focus和範圍類型rangeStyle構建一個時間範圍迭代器 。
     *
     * 如傳入的時間是Thursday, July 4, 2002,範圍類型是RANGE_MONTH_SUNDAY,
     * 則返回迭代器的範圍是從Sunday, June 30, 2002 到 Saturday, August 3, 2002
     *
     * @param focus  指定的時間
     * @param rangeStyle  範圍類型,值必須是以下之一:
     * DateUtils.RANGE_MONTH_SUNDAY, 
     * DateUtils.RANGE_MONTH_MONDAY,
     * DateUtils.RANGE_WEEK_SUNDAY,
     * DateUtils.RANGE_WEEK_MONDAY,
     * DateUtils.RANGE_WEEK_RELATIVE,
     * DateUtils.RANGE_WEEK_CENTER
     */
    public static Iterator<Calendar> iterator(final Calendar focus, final int rangeStyle)

    /**
     * 根據指定的時間focus和範圍類型rangeStyle構建一個時間範圍迭代器 。
     *
     * 如傳入的時間是Thursday, July 4, 2002,範圍類型是RANGE_MONTH_SUNDAY,
     * 則返回迭代器的範圍是從Sunday, June 30, 2002 到 Saturday, August 3, 2002
     *
     * @param focus  指定的時間
     * @param rangeStyle  範圍類型,值必須是iterator(Calendar, int)方法註釋中列出的
     */
    public static Iterator<?> iterator(final Object focus, final int rangeStyle)

 

/**
     * 返回指定分段內的毫秒數 。 全部大於分段的DateFields將被忽略 。
     *
     * 請求任何日期毫秒,將返回當前秒的毫秒數 (返回一個數字在0和999之間) 。
     * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND 和 Calendar.MILLISECOND
     * 分段值小於或等於MILLISECOND,將返回0 。
     * 
     *  January 1, 2008 7:15:10.538 with Calendar.SECOND as fragment will return 538
     *  January 6, 2008 7:15:10.538 with Calendar.SECOND as fragment will return 538
     *  January 6, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10538
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     *   (a millisecond cannot be split in milliseconds)
     * 
     * @param calendar 獲取值得日曆對象,非null
     * @param fragment 分段值
     */
  public static long getFragmentInMilliseconds(final Calendar calendar, final int fragment)

    /**
     * 返回指定分段內的秒數 。 全部大於分段的DateFields將被忽略 。
     *
     * 請求任何日期秒,將返回當前的分鐘的秒數 (返回一個數字在0和59之間) 。
     * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND 和 Calendar.MILLISECOND
     * 分段值小於或等於SECOND,將返回0 。
     * 
     *  January 1, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10
     *  January 6, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10
     *  January 6, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 26110
     *   (7*3600 + 15*60 + 10)</li>
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     * 
     * @param calendar 獲取值得日曆對象,非null
     * @param fragment 分段值
     */
    public static long getFragmentInSeconds(final Calendar calendar, final int fragment)

    /**
     * 返回指定分段內的分鐘數 。 全部大於分段的DateFields將被忽略 。
     *
     * 請求任何日期分鐘,將返回當前的小時的分鐘數 (返回一個數字在0和59之間)
     * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND 和 Calendar.MILLISECOND
     * 分段值小於或等於MINUTE,將返回0 。
     * 
     *  January 1, 2008 7:15:10.538 with Calendar.HOUR_OF_DAY as fragment will return 15
     *  January 6, 2008 7:15:10.538 with Calendar.HOUR_OF_DAY as fragment will return 15
     *  January 1, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 15
     *  January 6, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 435 (7*60 + 15)
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     * 
     * @param calendar 獲取值得日曆對象,非null
     * @param fragment 分段值
     */
    public static long getFragmentInMinutes(final Calendar calendar, final int fragment)

    /**
     * 返回指定分段內的小時數 。 全部大於分段的DateFields將被忽略 。
     *
     * 請求任何日期小時,將返回當前的天的小時數 (返回一個數字在0和23之間) 。
     * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND 和 Calendar.MILLISECOND
     * 分段值小於或等於HOUR_OF_DAY,將返回0 。
     *  
     *  January 1, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 7
     *  January 6, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 7
     *  January 1, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 7
     *  January 6, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 127 (5*24 + 7)
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     *  
     * @param calendar 獲取值得日曆對象,非null
     * @param fragment 分段值
     */
    public static long getFragmentInHours(final Calendar calendar, final int fragment)

    /**
     * 返回指定分段內的天數 。 全部大於分段的DateFields將被忽略 。
     *
     * 請求任何日期天數,將返回當前的月的天數 (返回一個數字在1和31之間) 。
     * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND 和 Calendar.MILLISECOND
     * 分段值小於或等於DATE,將返回0 。
     * 
     *  January 28, 2008 with Calendar.MONTH as fragment will return 28
     *  February 28, 2008 with Calendar.MONTH as fragment will return 28
     *  January 28, 2008 with Calendar.YEAR as fragment will return 28
     *  February 28, 2008 with Calendar.YEAR as fragment will return 59
     *  January 28, 2008 with Calendar.MILLISECOND as fragment will return 0
     * 
     * @param calendar 獲取值得日曆對象,非null
     * @param fragment 分段值
     */
    public static long getFragmentInDays(final Calendar calendar, final int fragment)

    /**
     * 截取比較兩個日曆對象的field處的值是否相同 。
     * 
     * @param cal1 第一個日曆對象,非null
     * @param cal2 第二個日曆對象,非null
     * @param field Calendar中的閾值
     */
    public static boolean truncatedEquals(final Calendar cal1, final Calendar cal2, final int field)

    /**
     * 截取比較兩個日期對象的field處的值是否相同 。
     * 
     * @param date1 第一個日期對象,非null
     * @param date2 第二個日期對象,非null
     * @param field Calendar中的閾值
     */
    public static boolean truncatedEquals(final Date date1, final Date date2, final int field)

    /**
     * 截取比較兩個日曆對象的field處的值 。
     * 若是第一個日曆小於、等於、大於第二個,則對應返回負整數、0、正整數
     * 
     * @param cal1 第一個日曆對象,非null
     * @param cal2 第二個日曆對象,非null
     * @param field Calendar中的閾值
     */
    public static int truncatedCompareTo(final Calendar cal1, final Calendar cal2, final int field)

    /**
     * 截取比較斷兩個日期對象的field處的值 。
     * 若是第一個日期小於、等於、大於第二個,則對應返回負整數、0、正整數
     * 
     * @param date1 第一個日期對象,非null
     * @param date2 第二個日期對象,非null
     * @param field Calendar中的閾值
     */
    public static int truncatedCompareTo(final Date date1, final Date date2, final int field)

相關文章
相關標籤/搜索