java DateUtil.java

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java DateUtil.java相关的知识,希望对你有一定的参考价值。

package com.duilu.bijob.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;

public class DateUtil {

    public static final long MILLS_PER_SECOND = 1000;
    public static final long MILLS_PER_MINUTE = 60 * MILLS_PER_SECOND;
    public static final long MILLS_PER_HOUR = 60 * MILLS_PER_MINUTE;
    public static final long MILLS_PER_DAY = 24 * MILLS_PER_HOUR;
    public static final long MILLS_PER_WEEK = 7 * MILLS_PER_DAY;

    public static final String DATE_FORMAT_1 = "yyyy-MM-dd HH:mm:ss";
    public static final String DATE_FORMAT_2 = "yyyy-MM-dd";
    public static final String DATE_FORMAT_3 = "yyyy-MM";
    public static final String DATE_FORMAT_4 = "yyyyMMdd";
    public static final String DATE_FORMAT_5 = "yyyyMMddHHmmss";
    public static final String DATE_FORMAT_6 = "yyyyMMddHHmmssSSS";

    /**
     * 将时间文本转成日期格式
     *
     * @param dateStr 时间文本
     * @param format  格式化文本
     * @return
     * @throws ParseException
     */
    public static Date parseDate(final String dateStr, final String format) throws ParseException {
        if (StringUtils.isNotBlank(dateStr) && StringUtils.isNotBlank(format)) {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.parse(dateStr);
        }
        return null;
    }

    /**
     * 将时间文本转成日期格式
     *
     * @param dateStr 时间文本
     *                yyyy-MM-dd HH:mm:ss
     * @return
     * @throws ParseException
     */
    public static Date ymdhmsStr2Date(final String dateStr) throws ParseException {
        return parseDate(dateStr, DATE_FORMAT_1);
    }

    /**
     * 将时间文本转成日期格式
     *
     * @param dateStr 时间文本
     *                yyyy-MM-dd
     * @return
     * @throws ParseException
     */
    public static Date ymdStr2Date(final String dateStr) throws ParseException {
        return parseDate(dateStr, DATE_FORMAT_2);
    }

    /**
     * 将日期转成指定格式文本
     *
     * @param date   日期
     * @param format 格式化文本
     * @return
     */
    public static String formatDate(final Date date, final String format) {
        if (date != null && StringUtils.isNotBlank(format)) {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.format(date);
        }
        return null;
    }

    /**
     * 用将日期转成指定格式文本
     * yyyy-MM-dd HH:mm:ss
     *
     * @param date 日期
     * @return
     */
    public static String date2ymdhmsStr(final Date date) {
        return formatDate(date, DATE_FORMAT_1);
    }

    /**
     * 用将日期转成指定格式文本
     * yyyy-MM-dd
     *
     * @param date 日期
     * @return
     */
    public static String date2ymdStr(final Date date) {
        return formatDate(date, DATE_FORMAT_2);
    }

    /**
     * 用将日期转成指定格式文本
     * yyyy-MM
     *
     * @param date 日期
     * @return
     */
    public static String date2ymStr(final Date date) {
        return formatDate(date, DATE_FORMAT_3);
    }

    /**
     * 获取指定日期增加秒数后的日期
     *
     * @param date
     * @param seconds
     * @return
     */
    public static Date addSeconds(final Date date, final int seconds) {
        return new Date(date.getTime() + seconds * MILLS_PER_SECOND);
    }

    /**
     * 获取增加秒数后的日期
     *
     * @param seconds
     * @return
     */
    public static Date addSeconds(final int seconds) {
        return new Date(System.currentTimeMillis() + seconds * MILLS_PER_SECOND);
    }

    /**
     * 获取指定日期增加分数后的日期
     *
     * @param date
     * @param minutes
     * @return
     */
    public static Date addMinutes(final Date date, final int minutes) {
        return new Date(date.getTime() + minutes * MILLS_PER_MINUTE);
    }

    /**
     * 获取增加分数后的日期
     *
     * @param minutes
     * @return
     */
    public static Date addMinutes(final int minutes) {
        return new Date(System.currentTimeMillis() + minutes * MILLS_PER_MINUTE);
    }

    /**
     * 获取指定日期增加小时后的日期
     *
     * @param date
     * @param hours
     * @return
     */
    public static Date addHours(final Date date, final int hours) {
        return new Date(date.getTime() + hours * MILLS_PER_HOUR);
    }

    /**
     * 获取增加小时后的日期
     *
     * @param hours
     * @return
     */
    public static Date addHours(final int hours) {
        return new Date(System.currentTimeMillis() + hours * MILLS_PER_HOUR);
    }

    /**
     * 获取指定日期增加天数后的日期
     *
     * @param date
     * @param days
     * @return
     */
    public static Date addDays(final Date date, final int days) {
        return new Date(date.getTime() + days * MILLS_PER_DAY);
    }

    /**
     * 获取增加天数后的日期
     *
     * @param days
     * @return
     */
    public static Date addDays(final int days) {
        return new Date(System.currentTimeMillis() + days * MILLS_PER_DAY);
    }

    /**
     * 获取指定日期增加周数后的日期
     *
     * @param date
     * @param weeks
     * @return
     */
    public static Date addWeeks(final Date date, final int weeks) {
        return DateUtils.addWeeks(date, weeks);
    }

    /**
     * 获取指定日期增加周数后的日期
     *
     * @param weeks
     * @return
     */
    public static Date addWeeks(final int weeks) {
        return DateUtils.addWeeks(new Date(), weeks);
    }

    /**
     * 获取指定日期增加月数后的日期
     *
     * @param date
     * @param months
     * @return
     */
    public static Date addMonths(final Date date, final int months) {
        return DateUtils.addMonths(date, months);
    }

    /**
     * 获取增加月数后的日期
     *
     * @param months
     * @return
     */
    public static Date addMonths(final int months) {
        return DateUtils.addMonths(new Date(), months);
    }

    /**
     * 获取指定日期增加年数后的日期
     *
     * @param date
     * @param years
     * @return
     */
    public static Date addYears(final Date date, final int years) {
        return DateUtils.addYears(date, years);
    }

    /**
     * 获取增加年数后的日期
     *
     * @param years
     * @return
     */
    public static Date addYears(final int years) {
        return DateUtils.addYears(new Date(), years);
    }

    /**
     * 判断两个日期是否同一天
     *
     * @param date1
     * @param date2
     * @return
     */
    public static boolean isTheSameDay(final Date date1, final Date date2) {
        return DateUtils.isSameDay(date1, date2);
    }

    /**
     * 判断一个日期是否当天
     *
     * @param date
     * @return
     */
    public static boolean isTheDay(final Date date) {
        return isTheSameDay(new Date(), date);
    }

    /**
     * 获取指定时间的那天 00:00:00.000 的时间
     *
     * @param date
     * @return
     */
    public static Date dayBegin(final Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.HOUR_OF_DAY, 0);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        c.set(Calendar.MILLISECOND, 0);
        return c.getTime();
    }

    /**
     * 获取指定时间的那天 23:59:59.999 的时间
     *
     * @param date
     * @return
     */
    public static Date dayEnd(final Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.HOUR_OF_DAY, 23);
        c.set(Calendar.MINUTE, 59);
        c.set(Calendar.SECOND, 59);
        c.set(Calendar.MILLISECOND, 999);
        return c.getTime();
    }

    /**
     * 获取今天剩余多少秒
     *
     * @return
     */
    public static int getTodayRemainSeconds() {
        return (int) ((dayEnd(new Date()).getTime() - System.currentTimeMillis()) / 1000);
    }

}

以上是关于java DateUtil.java的主要内容,如果未能解决你的问题,请参考以下文章

DateUtil

Java Switch

Java Math

Java 布尔运算

java [Java] Java常用代码#java

Java - 35 Java 实例