日期工具类---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());
    }
}
相关文章
相关标签/搜索