日期工具類---DateUtil

public class DateUtil {
    /**
     * 每分鐘秒數
     */
    public static final int MINUTE_OF_SECONDS = 60;

    /**
     * 一小時秒數
     */
    public static final int HOUR_OF_SECONDS = MINUTE_OF_SECONDS * 60;
    /**
     * 一天總共秒數
     */
    public static final int DAY_OF_SECONDS = HOUR_OF_SECONDS * 24;
    /**
     * 防重複提交的標識在redis中保存的有效期
     */
    public static final int PREVENT_REPEAT_COMMIT_VALID_TIME = MINUTE_OF_SECONDS * 10;


    public static String formatDate(Date date, String format) {
        SimpleDateFormat df = new SimpleDateFormat(format);
        return df.format(date);
    }

    public static Date parseDate(String date, String format) throws ParseException {
        SimpleDateFormat df = new SimpleDateFormat(format);
        return df.parse(date);
    }

    public static Date format(Date date, String format) throws ParseException {
        String formatDateStr = formatDate(date, format);
        return parseDate(formatDateStr, "yyyy-MM-dd");
    }

    public static Integer getDayNum(Integer day, Integer dayUnit) {
        return BidConstant.periodDayNum.get(dayUnit) * day;
    }

    //得到本月第一天0點時間
    public static Date getCurrentMouthOfFirstDayBegin() {
        Calendar cal = Calendar.getInstance();
        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
        return cal.getTime();
    }

    //得到本月最後一天24點時間
    public static Date getCurrentMouthOfLastDayEnd() {
        Calendar cal = Calendar.getInstance();
        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 59, 59);
        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
        cal.set(Calendar.HOUR_OF_DAY, 23);
        return cal.getTime();
    }

    /**
     * 獲取指定日期及間隔時間的一天開始時間
     *
     * @param date 指定日期
     * @param days 間隔天數,指定日期以前使用負數,以後的使用正數
     * @return
     */
    public static Date getAppointDayBeginTime(Date date, int days) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.DATE, days);
        c.set(Calendar.HOUR_OF_DAY, 00);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        return c.getTime();
    }

    /**
     * 獲取指定日期及間隔時間的一天結束時間
     *
     * @param date 指定日期
     * @param days 間隔天數,指定日期以前使用負數,以後的使用正數
     * @return
     */
    public static Date getCurrentBeforeDayOfEndTime(Date date, int days) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.DATE, days);
        c.set(Calendar.HOUR_OF_DAY, 23);
        c.set(Calendar.MINUTE, 59);
        c.set(Calendar.SECOND, 59);
        return c.getTime();
    }

    public static void main(String[] args) throws ParseException {
        String format = ThreadSafeDateUtil.format(getCurrentMouthOfFirstDayBegin(), "yyyy-MM-dd HH:mm:ss");
        String format1 = ThreadSafeDateUtil.format(getCurrentMouthOfLastDayEnd(), "yyyy-MM-dd HH:mm:ss");
        System.out.println(format);
        System.out.println(format1);
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-d H:m:s");
        // 指定一個日期
        Date date = dateFormat.parse("2013-6-1 13:24:16");
        // 對 calendar 設置爲 date 所定的日期
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, 00);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        System.out.println(calendar.getTime().toLocaleString());
        Calendar c2 = new GregorianCalendar();
        c2.add(Calendar.DATE, 3);
        c2.set(Calendar.HOUR_OF_DAY, 23);
        c2.set(Calendar.MINUTE, 59);
        c2.set(Calendar.SECOND, 59);
        System.out.println(c2.getTime().toLocaleString());
    }
}
相關文章
相關標籤/搜索