`

日期工具类

    博客分类:
  • j2ee
阅读更多
日期工具类
public class DateUtils extends org.apache.commons.lang.time.DateUtils
{
    public static final SimpleDateFormat sdfShort = new SimpleDateFormat("yyyyMMdd");
    public static final SimpleDateFormat sdfLongTimeFormat = new SimpleDateFormat("yyyy-MM-dd-HH");
    public static final SimpleDateFormat sdfLong = new SimpleDateFormat("yyyy-MM-dd");
    public static final SimpleDateFormat sdfLongTime = new SimpleDateFormat("yyyyMMddHHmmss");
    public static final SimpleDateFormat sdfLongTimePlus = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static final SimpleDateFormat sdfLongTimePlusMill = new SimpleDateFormat("yyyyMMddHHmmssSSSS");
    public static final SimpleDateFormat sdfLongTime_min = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    public static final SimpleDateFormat sdfLongTime_cn_min = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");
    public static final SimpleDateFormat sdfLong_y_m = new SimpleDateFormat("yyyy年MM月");
    public static final SimpleDateFormat YEAR = new SimpleDateFormat("yyyy");
    public static final SimpleDateFormat MM = new SimpleDateFormat("MM");
    public static final SimpleDateFormat dd = new SimpleDateFormat("dd");

    /**
     * 获取当前日期为日期型
     *
     * @return 当前日期,java.util.Date类型
     */
    public static Date getCurrentDate()
    {
        return new Date();
    }

    /**
     * @param str 待解析字符串
     * @param sdf 格式定义
     * @return Date类,解析错误返回空
     * @see java.text.SimpleDateFormat#parse(String)
     */
    public static Date parse(String str, SimpleDateFormat sdf) throws ParseException
    {
        return sdf.parse(str);
    }

    /**
     * @param date date
     * @param sdf  格式化工具类
     * @return
     */
    public static String format(Date date, SimpleDateFormat sdf)
    {
        return sdf.format(date);
    }

    /**
     * 支持null判断,如果两个都为空,返回true.(处理逻辑类似StringUtils)
     * 支持Date,TimeStamp,以及二者混合比较
     *
     * @param date1
     * @param date2
     * @return
     */
    public static final boolean equals(Date date1, Date date2)
    {
        if (date1 == null && date2 == null)
        {
            return false;
        }
        else if (date1 != null && date2 != null && !(date1.getTime() == date2.getTime()))
        {
            return false;
        }
        return true;
    }

    /**
     * 得到日期中的月份
     *
     * @param date 日期
     * @return yyyy格式的年份
     */
    public static String convertDateToMonth(Date date)
    {
        return MM.format(date);
    }

    /**
     * 得到日期中的日
     *
     * @param date 日期
     * @return yyyy格式的年份
     */
    public static String convertDateToDay(Date date)
    {
        return dd.format(date);
    }

    /**
     * 得到将date增加指定月数后的date
     *
     * @param date       日期
     * @param intBetween 增加的月份
     * @return date 加上intBetween月数后的日期
     * @see org.apache.commons.lang.time.DateUtils#addMonths(java.util.Date, int)
     */
    @Deprecated
    public static Date increaseMonth(Date date, int intBetween)
    {
//		Calendar calo = Calendar.getInstance();
//		calo.setTime(date);
//		calo.add(Calendar.MONTH, intBetween);
//		return calo.getTime();
        return addMonths(date, intBetween);
    }

    /**
     * 得到将date增加指定天数后的date
     *
     * @param date       日期
     * @param intBetween 增加的天数
     * @return date 加上intBetween天数后的日期
     * @see org.apache.commons.lang.time.DateUtils#addDays(java.util.Date, int)
     */
    @Deprecated
    public static Date increaseDay(Date date, int intBetween)
    {
//		Calendar calo = Calendar.getInstance();
//		calo.setTime(date);
//		calo.add(Calendar.DATE, intBetween);
//		return calo.getTime();
        return addDays(date, intBetween);
    }

    /**
     * 得到将date增加指定分钟后的date
     *
     * @param date       日期
     * @param intBetween 增加的分钟
     * @return date 加上intBetween分钟后的日期
     * @see org.apache.commons.lang.time.DateUtils#addMinutes(java.util.Date, int)
     */
    @Deprecated
    public static Date increaseMinute(Date date, int intBetween)
    {
//		Calendar calo = Calendar.getInstance();
//		calo.setTime(date);
//		calo.add(Calendar.MINUTE, intBetween);
//		return calo.getTime();
        return addMinutes(date, intBetween);
    }


    /**
     * 得到将date增加指定年数后的date
     *
     * @param date       日期
     * @param intBetween 增加的年数
     * @return date加上intBetween年数后的日期
     * @see org.apache.commons.lang.time.DateUtils#addYears(java.util.Date, int)
     */
    @Deprecated
    public static Date increaseYear(Date date, int intBetween)
    {
//		Calendar calo = Calendar.getInstance();
//		calo.setTime(date);
//		calo.add(Calendar.YEAR, intBetween);
//		return calo.getTime();
        return addYears(date, intBetween);
    }

    /**
     * 得到两个日期之间相差的天数
     *
     * @param newDate 大的日期
     * @param oldDate 小的日期
     * @return newDate-oldDate相差的天数
     */
    public static int daysBetweenDates(Date newDate, Date oldDate)
    {
        int days = 0;
        Calendar calo = Calendar.getInstance();
        Calendar caln = Calendar.getInstance();
        calo.setTime(oldDate);
        caln.setTime(newDate);
        int oday = calo.get(Calendar.DAY_OF_YEAR);
        int nyear = caln.get(Calendar.YEAR);
        int oyear = calo.get(Calendar.YEAR);
        while (nyear > oyear)
        {
            calo.set(Calendar.MONTH, 11);
            calo.set(Calendar.DATE, 31);
            days = days + calo.get(Calendar.DAY_OF_YEAR);
            oyear = oyear + 1;
            calo.set(Calendar.YEAR, oyear);
        }
        int nday = caln.get(Calendar.DAY_OF_YEAR);
        days = days + nday - oday;

        return days;
    }

    /**
     * 得到将date增加指定月数后的date
     *
     * @param date       日期
     * @param intBetween 增加的月份
     * @return date 加上intBetween月数后的日期
     * @see org.apache.commons.lang.time.DateUtils#addHours(java.util.Date, int)
     */
    @Deprecated
    public static Date increaseHours(Date date, int intBetween)
    {
//		Calendar calo = Calendar.getInstance();
//		calo.setTime(date);
//		calo.add(Calendar.HOUR, intBetween);
//		return calo.getTime();
        return addHours(date, intBetween);
    }

    /**
     * 得到date的月份天数
     * @desc
     * @param date
     * @return
     */
    public static int getMonthDays(Date date)
	{
		Calendar time=Calendar.getInstance();
		time.clear();
		time.setTime( date );
		int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本月份的天数
		return day;
	}
}

分享到:
评论

相关推荐

    Java日期工具类

    Java日期工具类 1、日期的各种格式化 2、获取当前年度 3、获取当前月份 4、获取当前天号数 5、获取当前时间往前推一个月的时间 6、获取上个月("MMM yyyy") 7、获取上个月("yyyymm") 8、获取上个月("yyyy-mm") 9、...

    java日期工具类

    java日期工具类,java日期工具类,java日期工具类,java日期工具类

    DateUtils(日期工具类)

    DateUtils(日期工具类),包含日期格式化,解析等。

    日期工具类源码

    日期工具类

    日期工具类,包括各种日期之间的转换

    根据提供的文件信息,本文将对日期工具类进行深入解析,并详细介绍其包含的主要功能与实现方法。此工具类主要涉及到了日期格式化、日期解析、获取当前时间等实用操作。 ### 一、概述 该日期工具类名为 `DateUtil`...

    原创好用实用的日期工具类

    强大的好用的原创日期工具类: 1.返回当前日期字符串 yyyy-MM-dd 2.返回当前日期字符串 yyyy-MM-dd HH:mm:ss 3.根据指定时间格式解析日期字符串为Date对象 4.根据默认时间格式解析日期字符串为Date对象 5.根据指定...

    Java日期工具类,学习代码

    Java日期工具类是Java开发中不可或缺的一部分,它们用于处理日期和时间相关的操作。在Java中,日期和时间处理涉及到多个类和接口,如`java.util.Date`、`java.util.Calendar`、`java.text.SimpleDateFormat`以及Java...

    Java日期工具类,Java时间工具类,Java时间格式化

    本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...

    史上最全的日期工具类

    各种你能想到的日期计算,操作。包含常见的年月日间隔计算、比较、格式化

    时间日期工具类(包含java8新特性).zip

    `时间日期工具类`是提升开发效率的关键,它们提供了对日期和时间进行格式化、比较、计算等操作的便捷方法。在这个"时间日期工具类(包含java8新特性).zip"压缩包中,我们有两个文件:DateUtil.java和DateUtils.java...

Global site tag (gtag.js) - Google Analytics