|
@@ -6,16 +6,18 @@ import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
|
|
-/** 日期操作类
|
|
|
|
|
|
+/**
|
|
|
|
+ * 日期操作类
|
|
|
|
+ *
|
|
* @author liuhx on 2017/1/2 14:23
|
|
* @author liuhx on 2017/1/2 14:23
|
|
* @version V1.0
|
|
* @version V1.0
|
|
* @email liuhx@elab-plus.com
|
|
* @email liuhx@elab-plus.com
|
|
*/
|
|
*/
|
|
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
|
|
|
- public static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd",java.util.Locale.CHINA);
|
|
|
|
- public static final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm:ss",java.util.Locale.CHINA);
|
|
|
|
- public static final DateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",java.util.Locale.CHINA);
|
|
|
|
|
|
+ public static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd", java.util.Locale.CHINA);
|
|
|
|
+ public static final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm:ss", java.util.Locale.CHINA);
|
|
|
|
+ public static final DateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", java.util.Locale.CHINA);
|
|
|
|
|
|
/**
|
|
/**
|
|
* 返回当前时间
|
|
* 返回当前时间
|
|
@@ -61,8 +63,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 将字符串转换为日期(不包括时间)
|
|
* 将字符串转换为日期(不包括时间)
|
|
*
|
|
*
|
|
- * @param dateString
|
|
|
|
- * "yyyy-MM-dd"格式的日期字符串
|
|
|
|
|
|
+ * @param dateString "yyyy-MM-dd"格式的日期字符串
|
|
* @return 日期
|
|
* @return 日期
|
|
*/
|
|
*/
|
|
public static Date convertToDate(String dateString) {
|
|
public static Date convertToDate(String dateString) {
|
|
@@ -86,8 +87,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 将字符串转换为日期(包括时间)
|
|
* 将字符串转换为日期(包括时间)
|
|
*
|
|
*
|
|
- * @param dateTimeString
|
|
|
|
- * "yyyy-MM-dd HH:mm:ss"格式的日期字符串
|
|
|
|
|
|
+ * @param dateTimeString "yyyy-MM-dd HH:mm:ss"格式的日期字符串
|
|
* @return 日期时间
|
|
* @return 日期时间
|
|
*/
|
|
*/
|
|
public static Date convertToDateTime(String dateTimeString) {
|
|
public static Date convertToDateTime(String dateTimeString) {
|
|
@@ -101,8 +101,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 将字符串转换为日期(包括时间)
|
|
* 将字符串转换为日期(包括时间)
|
|
*
|
|
*
|
|
- * @param dateString
|
|
|
|
- * "dd/MM/yyyy HH:mm"格式的日期字符串
|
|
|
|
|
|
+ * @param dateString "dd/MM/yyyy HH:mm"格式的日期字符串
|
|
* @return 日期
|
|
* @return 日期
|
|
*/
|
|
*/
|
|
public static Date convertSimpleToDateTime(String dateString) {
|
|
public static Date convertSimpleToDateTime(String dateString) {
|
|
@@ -127,10 +126,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 获取月底
|
|
* 获取月底
|
|
*
|
|
*
|
|
- * @param year
|
|
|
|
- * 年 4位年度
|
|
|
|
- * @param month
|
|
|
|
- * 月 1~12
|
|
|
|
|
|
+ * @param year 年 4位年度
|
|
|
|
+ * @param month 月 1~12
|
|
* @return 月底的Date对象。例如:2006-3-31 23:59:59.999
|
|
* @return 月底的Date对象。例如:2006-3-31 23:59:59.999
|
|
*/
|
|
*/
|
|
public static Date getMonthEnd(int year, int month) {
|
|
public static Date getMonthEnd(int year, int month) {
|
|
@@ -154,8 +151,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 获取月底
|
|
* 获取月底
|
|
*
|
|
*
|
|
- * @param when
|
|
|
|
- * 要计算月底的日期
|
|
|
|
|
|
+ * @param when 要计算月底的日期
|
|
* @return 月底的Date对象。例如:2006-3-31 23:59:59.999
|
|
* @return 月底的Date对象。例如:2006-3-31 23:59:59.999
|
|
*/
|
|
*/
|
|
public static Date getMonthEnd(Date when) {
|
|
public static Date getMonthEnd(Date when) {
|
|
@@ -192,8 +188,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 获取给定日的最后一刻。
|
|
* 获取给定日的最后一刻。
|
|
*
|
|
*
|
|
- * @param when
|
|
|
|
- * 给定日
|
|
|
|
|
|
+ * @param when 给定日
|
|
* @return 最后一刻。例如:2006-4-19 23:59:59.999
|
|
* @return 最后一刻。例如:2006-4-19 23:59:59.999
|
|
*/
|
|
*/
|
|
public static Date getDayEnd(Date when) {
|
|
public static Date getDayEnd(Date when) {
|
|
@@ -206,8 +201,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 获取给定日的第一刻。
|
|
* 获取给定日的第一刻。
|
|
*
|
|
*
|
|
- * @param when
|
|
|
|
- * 给定日
|
|
|
|
|
|
+ * @param when 给定日
|
|
* @return 最后一刻。例如:2006-4-19 23:59:59.999
|
|
* @return 最后一刻。例如:2006-4-19 23:59:59.999
|
|
*/
|
|
*/
|
|
public static Date getDay(Date when) {
|
|
public static Date getDay(Date when) {
|
|
@@ -220,12 +214,9 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 日期加法
|
|
* 日期加法
|
|
*
|
|
*
|
|
- * @param when
|
|
|
|
- * 被计算的日期
|
|
|
|
- * @param field
|
|
|
|
- * the time field. 在Calendar中定义的常数,例如Calendar.DATE
|
|
|
|
- * @param amount
|
|
|
|
- * 加数
|
|
|
|
|
|
+ * @param when 被计算的日期
|
|
|
|
+ * @param field the time field. 在Calendar中定义的常数,例如Calendar.DATE
|
|
|
|
+ * @param amount 加数
|
|
* @return 计算后的日期
|
|
* @return 计算后的日期
|
|
*/
|
|
*/
|
|
public static Date add(Date when, int field, int amount) {
|
|
public static Date add(Date when, int field, int amount) {
|
|
@@ -238,23 +229,20 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 计算给定的日期加上给定的天数。
|
|
* 计算给定的日期加上给定的天数。
|
|
*
|
|
*
|
|
- * @param when
|
|
|
|
- * 给定的日期
|
|
|
|
- * @param amount
|
|
|
|
- * 给定的天数
|
|
|
|
|
|
+ * @param when 给定的日期
|
|
|
|
+ * @param amount 给定的天数
|
|
* @return 计算后的日期
|
|
* @return 计算后的日期
|
|
*/
|
|
*/
|
|
public static Date addDays(Date when, int amount) {
|
|
public static Date addDays(Date when, int amount) {
|
|
|
|
|
|
return add(when, Calendar.DAY_OF_YEAR, amount);
|
|
return add(when, Calendar.DAY_OF_YEAR, amount);
|
|
}
|
|
}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 计算给定的日期加上给定的分钟数。
|
|
* 计算给定的日期加上给定的分钟数。
|
|
*
|
|
*
|
|
- * @param when
|
|
|
|
- * 给定的日期
|
|
|
|
- * @param amount
|
|
|
|
- * 给定的分钟数
|
|
|
|
|
|
+ * @param when 给定的日期
|
|
|
|
+ * @param amount 给定的分钟数
|
|
* @return 计算后的日期
|
|
* @return 计算后的日期
|
|
*/
|
|
*/
|
|
public static Date addMinutes(Date when, int amount) {
|
|
public static Date addMinutes(Date when, int amount) {
|
|
@@ -265,10 +253,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 计算给定的日期加上给定的秒数。
|
|
* 计算给定的日期加上给定的秒数。
|
|
*
|
|
*
|
|
- * @param when
|
|
|
|
- * 给定的日期
|
|
|
|
- * @param amount
|
|
|
|
- * 给定的秒数
|
|
|
|
|
|
+ * @param when 给定的日期
|
|
|
|
+ * @param amount 给定的秒数
|
|
* @return 计算后的日期
|
|
* @return 计算后的日期
|
|
*/
|
|
*/
|
|
public static Date addSeconds(Date when, int amount) {
|
|
public static Date addSeconds(Date when, int amount) {
|
|
@@ -279,10 +265,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 计算给定的日期加上给定的月数。
|
|
* 计算给定的日期加上给定的月数。
|
|
*
|
|
*
|
|
- * @param when
|
|
|
|
- * 给定的日期
|
|
|
|
- * @param amount
|
|
|
|
- * 给定的月数
|
|
|
|
|
|
+ * @param when 给定的日期
|
|
|
|
+ * @param amount 给定的月数
|
|
* @return 计算后的日期
|
|
* @return 计算后的日期
|
|
*/
|
|
*/
|
|
public static Date addMonths(Date when, int amount) {
|
|
public static Date addMonths(Date when, int amount) {
|
|
@@ -314,7 +298,6 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- *
|
|
|
|
* @param date
|
|
* @param date
|
|
* @param n
|
|
* @param n
|
|
* @return
|
|
* @return
|
|
@@ -327,6 +310,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 将Date对象类型转化为日期(2006-09-17 5:20:5)的字符串
|
|
* 将Date对象类型转化为日期(2006-09-17 5:20:5)的字符串
|
|
|
|
+ *
|
|
* @param date
|
|
* @param date
|
|
* @return String
|
|
* @return String
|
|
*/
|
|
*/
|
|
@@ -344,6 +328,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 将String 类型的转化为日期格式(2006-09-17 5:20:5)
|
|
* 将String 类型的转化为日期格式(2006-09-17 5:20:5)
|
|
|
|
+ *
|
|
* @param dateStr
|
|
* @param dateStr
|
|
* @return Date
|
|
* @return Date
|
|
*/
|
|
*/
|
|
@@ -363,23 +348,18 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 字符串转为时间类型
|
|
* 字符串转为时间类型
|
|
*
|
|
*
|
|
- * @param dateStr
|
|
|
|
- * <String>
|
|
|
|
|
|
+ * @param dateStr <String>
|
|
* @return Date
|
|
* @return Date
|
|
*/
|
|
*/
|
|
public static final Date parseDate(String dateStr) {
|
|
public static final Date parseDate(String dateStr) {
|
|
|
|
+ return parseDateByFormat(dateStr, "yyyy-MM-dd");
|
|
|
|
+ }
|
|
|
|
|
|
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
|
+ public static final Date parseDateByFormat(String dateStr, String format) {
|
|
|
|
|
|
- try {
|
|
|
|
- return df.parse(dateStr);
|
|
|
|
- } catch (ParseException e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
|
+ if (StringUtils.isEmpty(dateStr)) {
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
- return null;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static final Date parseDateByFormat(String dateStr,String format) {
|
|
|
|
|
|
|
|
SimpleDateFormat df = new SimpleDateFormat(format);
|
|
SimpleDateFormat df = new SimpleDateFormat(format);
|
|
|
|
|
|
@@ -394,8 +374,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 得到具体时间如:几天前;几小时前;几分钟前;几秒钟前
|
|
* 得到具体时间如:几天前;几小时前;几分钟前;几秒钟前
|
|
*
|
|
*
|
|
- * @param time
|
|
|
|
- * 传入一个Date类型的日期
|
|
|
|
|
|
+ * @param time 传入一个Date类型的日期
|
|
* @return 根据当天当时当秒解析出距离当天当时当秒的字符串 String
|
|
* @return 根据当天当时当秒解析出距离当天当时当秒的字符串 String
|
|
*/
|
|
*/
|
|
public static String getTimeInterval(Date time) {
|
|
public static String getTimeInterval(Date time) {
|
|
@@ -475,7 +454,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
public static String dateToString(Date date, String format) {
|
|
public static String dateToString(Date date, String format) {
|
|
|
|
|
|
try {
|
|
try {
|
|
- if(date!=null)
|
|
|
|
|
|
+ if (date != null)
|
|
return new SimpleDateFormat(format).format(date);
|
|
return new SimpleDateFormat(format).format(date);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -486,6 +465,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 系统日期减去传入日期得到天数
|
|
* 系统日期减去传入日期得到天数
|
|
|
|
+ *
|
|
* @param date1 传入日期
|
|
* @param date1 传入日期
|
|
* @return 天数
|
|
* @return 天数
|
|
* long
|
|
* long
|
|
@@ -493,12 +473,13 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
public static long sub(Date date1) {
|
|
public static long sub(Date date1) {
|
|
Date d2 = convertToDate(dateParseShortString(new Date()));
|
|
Date d2 = convertToDate(dateParseShortString(new Date()));
|
|
Date d1 = convertToDate(dateParseShortString(date1));
|
|
Date d1 = convertToDate(dateParseShortString(date1));
|
|
- long day = (d2.getTime() - d1.getTime())/(24*60*60*1000);
|
|
|
|
|
|
+ long day = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000);
|
|
return day;
|
|
return day;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 日期相减得到年数
|
|
* 日期相减得到年数
|
|
|
|
+ *
|
|
* @param date1 相减的日期
|
|
* @param date1 相减的日期
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -506,30 +487,32 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
Date d2 = convertToDate(dateParseShortString(new Date()));
|
|
Date d2 = convertToDate(dateParseShortString(new Date()));
|
|
Date d1 = convertToDate(dateParseShortString(date1));
|
|
Date d1 = convertToDate(dateParseShortString(date1));
|
|
long day = (d2.getYear() - d1.getYear());
|
|
long day = (d2.getYear() - d1.getYear());
|
|
- return day+1;
|
|
|
|
|
|
+ return day + 1;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 计算两个日期间的月份
|
|
* 计算两个日期间的月份
|
|
|
|
+ *
|
|
* @param date1 起始日期
|
|
* @param date1 起始日期
|
|
* @param date2 结束日期
|
|
* @param date2 结束日期
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public static long subDateGetMonth(Date date1,Date date2) {
|
|
|
|
- DateCalculate culate=DateCalculate.calculate(date1, date2);
|
|
|
|
|
|
+ public static long subDateGetMonth(Date date1, Date date2) {
|
|
|
|
+ DateCalculate culate = DateCalculate.calculate(date1, date2);
|
|
return culate.getDifferenceOfMonths();
|
|
return culate.getDifferenceOfMonths();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 计算两个日期间的月份,不满一个月按一个月计算
|
|
* 计算两个日期间的月份,不满一个月按一个月计算
|
|
|
|
+ *
|
|
* @param date1 起始日期
|
|
* @param date1 起始日期
|
|
* @param date2 结束日期
|
|
* @param date2 结束日期
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public static long subDateGetFullMonth(Date date1,Date date2) {
|
|
|
|
- DateCalculate culate=DateCalculate.calculate(date1, date2);
|
|
|
|
- long month=culate.getDifferenceOfMonths();
|
|
|
|
- if(culate.getDifferenceOfDays() > 0)
|
|
|
|
|
|
+ public static long subDateGetFullMonth(Date date1, Date date2) {
|
|
|
|
+ DateCalculate culate = DateCalculate.calculate(date1, date2);
|
|
|
|
+ long month = culate.getDifferenceOfMonths();
|
|
|
|
+ if (culate.getDifferenceOfDays() > 0)
|
|
month++;
|
|
month++;
|
|
return month;
|
|
return month;
|
|
}
|
|
}
|
|
@@ -538,7 +521,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
/**
|
|
/**
|
|
* 日期提前一天
|
|
* 日期提前一天
|
|
*
|
|
*
|
|
- * @param when 被计算的日期
|
|
|
|
|
|
+ * @param when 被计算的日期
|
|
* @param dateFormat 日期格式化
|
|
* @param dateFormat 日期格式化
|
|
* @return 计算后的日期
|
|
* @return 计算后的日期
|
|
*/
|
|
*/
|
|
@@ -551,6 +534,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 当前日期提前一天
|
|
* 当前日期提前一天
|
|
|
|
+ *
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
public static String beforeOneDayByCurDate() {
|
|
public static String beforeOneDayByCurDate() {
|
|
@@ -559,7 +543,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 日期提前一个月
|
|
* 日期提前一个月
|
|
- * @param when 日期
|
|
|
|
|
|
+ *
|
|
|
|
+ * @param when 日期
|
|
* @param dateFormat 日期格式化
|
|
* @param dateFormat 日期格式化
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@@ -572,6 +557,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 当前日期提前一个月
|
|
* 当前日期提前一个月
|
|
|
|
+ *
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
public static String beforeOneMonthByCurDate() {
|
|
public static String beforeOneMonthByCurDate() {
|
|
@@ -583,10 +569,10 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
System.out.println(yesterday);
|
|
System.out.println(yesterday);
|
|
String monthBefore = DateUtils.beforeOneMonthByCurDate();
|
|
String monthBefore = DateUtils.beforeOneMonthByCurDate();
|
|
System.out.println(monthBefore);
|
|
System.out.println(monthBefore);
|
|
- Date date = DateUtils.parseDateByFormat(DateUtils.getCurrentTime(),"yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
+ Date date = DateUtils.parseDateByFormat(DateUtils.getCurrentTime(), "yyyy-MM-dd HH:mm:ss");
|
|
Date date2 = DateUtils.parseDate(DateUtils.getCurrentTime());
|
|
Date date2 = DateUtils.parseDate(DateUtils.getCurrentTime());
|
|
System.out.println(DateUtils.getCurrentTime());
|
|
System.out.println(DateUtils.getCurrentTime());
|
|
- System.out.println("date2:"+date2);
|
|
|
|
|
|
+ System.out.println("date2:" + date2);
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|