|
@@ -6,10 +6,15 @@ import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
|
|
|
+import org.joda.time.DateTime;
|
|
|
|
+import org.joda.time.Days;
|
|
|
|
+import org.joda.time.Months;
|
|
|
|
+import org.joda.time.format.DateTimeFormat;
|
|
|
|
+import org.joda.time.format.DateTimeFormatter;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 时间工具类
|
|
* 时间工具类
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @author ygp
|
|
* @author ygp
|
|
*/
|
|
*/
|
|
public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
@@ -18,20 +23,26 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
|
|
|
|
public static String YYYY_MM = "yyyy-MM";
|
|
public static String YYYY_MM = "yyyy-MM";
|
|
|
|
|
|
|
|
+ public static String YYYYMM = "yyyyMM";
|
|
|
|
+
|
|
public static String YYYY_MM_DD = "yyyy-MM-dd";
|
|
public static String YYYY_MM_DD = "yyyy-MM-dd";
|
|
|
|
|
|
public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
|
|
public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
|
|
|
|
|
|
|
|
+ public static String YYYYMMDD = "yyyyMMdd";
|
|
|
|
+
|
|
|
|
+ public static String YYYYDOTMMDOTDD = "yyyy.MM.dd";
|
|
|
|
+
|
|
public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
|
|
public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
|
|
-
|
|
|
|
|
|
+
|
|
private static String[] parsePatterns = {
|
|
private static String[] parsePatterns = {
|
|
- "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
|
|
|
|
|
|
+ "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
|
|
"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
|
|
"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
|
|
"yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
|
|
"yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取当前Date型日期
|
|
* 获取当前Date型日期
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @return Date() 当前日期
|
|
* @return Date() 当前日期
|
|
*/
|
|
*/
|
|
public static Date getNowDate()
|
|
public static Date getNowDate()
|
|
@@ -39,9 +50,14 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
return new Date();
|
|
return new Date();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static Date getToday() {
|
|
|
|
+ String s = parseDateToStr(YYYY_MM_DD, new Date());
|
|
|
|
+ return dateTime(YYYY_MM_DD, s);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取当前日期, 默认格式为yyyy-MM-dd
|
|
* 获取当前日期, 默认格式为yyyy-MM-dd
|
|
- *
|
|
|
|
|
|
+ *
|
|
* @return String
|
|
* @return String
|
|
*/
|
|
*/
|
|
public static String getDate()
|
|
public static String getDate()
|
|
@@ -86,6 +102,45 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static final Date parseDateToDay(Date date) {
|
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
+ String s = sdf.format(date);
|
|
|
|
+ try {
|
|
|
|
+ return sdf.parse(s);
|
|
|
|
+ } catch (ParseException e) {
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 计算两个日期之间相差多少天,一个月按30天算
|
|
|
|
+ * @param begin
|
|
|
|
+ * @param end
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static final int diff(Date begin, Date end) {
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormat.forPattern(YYYY_MM_DD);
|
|
|
|
+ DateTime startDay = formatter.parseDateTime(parseDateToStr(YYYY_MM_DD, begin));
|
|
|
|
+ DateTime endDay = formatter.parseDateTime(parseDateToStr(YYYY_MM_DD, end));
|
|
|
|
+ int days = Days.daysBetween(startDay, endDay).getDays();
|
|
|
|
+ return days;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 计算两个日期之间相差多少个月
|
|
|
|
+ * @param begin
|
|
|
|
+ * @param end
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static final int diffMonth(Date begin, Date end) {
|
|
|
|
+
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormat.forPattern(YYYY_MM_DD);
|
|
|
|
+ DateTime startDay = formatter.parseDateTime(parseDateToStr(YYYY_MM_DD, begin));
|
|
|
|
+ DateTime endDay = formatter.parseDateTime(parseDateToStr(YYYY_MM_DD, end));
|
|
|
|
+ int months = Months.monthsBetween(startDay, endDay).getMonths();
|
|
|
|
+ return months;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 日期路径 即年/月/日 如2018/08/08
|
|
* 日期路径 即年/月/日 如2018/08/08
|
|
*/
|
|
*/
|
|
@@ -104,6 +159,20 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
return DateFormatUtils.format(now, "yyyyMMdd");
|
|
return DateFormatUtils.format(now, "yyyyMMdd");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static final Date parseStrToDate(String str, String pattern){
|
|
|
|
+ if (str == null)
|
|
|
|
+ {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ return parseDate(str, pattern);
|
|
|
|
+ }
|
|
|
|
+ catch (ParseException e)
|
|
|
|
+ {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
/**
|
|
/**
|
|
* 日期型字符串转化为日期 格式
|
|
* 日期型字符串转化为日期 格式
|
|
*/
|
|
*/
|
|
@@ -122,7 +191,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取服务器启动时间
|
|
* 获取服务器启动时间
|
|
*/
|
|
*/
|
|
@@ -153,18 +222,17 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
// long sec = diff % nd % nh % nm / ns;
|
|
// long sec = diff % nd % nh % nm / ns;
|
|
return day + "天" + hour + "小时" + min + "分钟";
|
|
return day + "天" + hour + "小时" + min + "分钟";
|
|
}
|
|
}
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 获取当天零点零分时间
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- public static Date getNowZero() {
|
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
|
- calendar.setTime(new Date());
|
|
|
|
- calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
- calendar.set(Calendar.MINUTE, 0);
|
|
|
|
- calendar.set(Calendar.SECOND, 0);
|
|
|
|
- Date zero = calendar.getTime();
|
|
|
|
- return zero;
|
|
|
|
|
|
+
|
|
|
|
+ public static Date getNowAddMonth(Date now, int months) {
|
|
|
|
+ SimpleDateFormat sj = new SimpleDateFormat("yyyyMMdd");
|
|
|
|
+ try {
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ calendar.setTime(now);
|
|
|
|
+ calendar.add(Calendar.MONTH, months);
|
|
|
|
+ return calendar.getTime();
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
}
|
|
}
|