欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

日期工具类

程序员文章站 2022-06-24 22:30:08
...
日期工具类

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;
}
}

相关标签: 日期