|
@@ -15,9 +15,26 @@ import java.util.Date;
|
|
|
*/
|
|
|
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);
|
|
|
+ static ThreadLocal<DateFormat> DATE_FORMAT = new ThreadLocal<DateFormat>() {
|
|
|
+ @Override
|
|
|
+ protected SimpleDateFormat initialValue() {
|
|
|
+ return new SimpleDateFormat("yyyy-MM-dd", java.util.Locale.CHINA);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ static ThreadLocal<DateFormat> TIME_FORMAT = new ThreadLocal<DateFormat>() {
|
|
|
+ @Override
|
|
|
+ protected SimpleDateFormat initialValue() {
|
|
|
+ return new SimpleDateFormat("HH:mm:ss", java.util.Locale.CHINA);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ static ThreadLocal<DateFormat> DATE_TIME_FORMAT = new ThreadLocal<DateFormat>() {
|
|
|
+ @Override
|
|
|
+ protected SimpleDateFormat initialValue() {
|
|
|
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", java.util.Locale.CHINA);
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
/**
|
|
|
* 返回当前时间
|
|
@@ -36,14 +53,13 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
* @return 返回当前时间的数字
|
|
|
*/
|
|
|
public static String getCurrentTime() {
|
|
|
- return DATE_TIME_FORMAT.format(new java.util.Date());
|
|
|
+ return DATE_TIME_FORMAT.get().format(new java.util.Date());
|
|
|
}
|
|
|
|
|
|
public static int getCurrentUnixTime() throws Exception {
|
|
|
- long epoch = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss")
|
|
|
- .parse("01/01/1970 00:00:00").getTime() / 1000;
|
|
|
- return Integer.parseInt(Long.toString(System.currentTimeMillis() / 1000
|
|
|
- - epoch));
|
|
|
+ long epoch =
|
|
|
+ new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/01/1970 00:00:00").getTime() / 1000;
|
|
|
+ return Integer.parseInt(Long.toString(System.currentTimeMillis() / 1000 - epoch));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -68,7 +84,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
*/
|
|
|
public static Date convertToDate(String dateString) {
|
|
|
try {
|
|
|
- return DATE_FORMAT.parse(dateString);
|
|
|
+ return DATE_FORMAT.get().parse(dateString);
|
|
|
} catch (ParseException e) {
|
|
|
return null;
|
|
|
}
|
|
@@ -92,7 +108,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
*/
|
|
|
public static Date convertToDateTime(String dateTimeString) {
|
|
|
try {
|
|
|
- return DATE_TIME_FORMAT.parse(dateTimeString);
|
|
|
+ return DATE_TIME_FORMAT.get().parse(dateTimeString);
|
|
|
} catch (ParseException e) {
|
|
|
return null;
|
|
|
}
|
|
@@ -106,8 +122,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
*/
|
|
|
public static Date convertSimpleToDateTime(String dateString) {
|
|
|
try {
|
|
|
- return new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm")
|
|
|
- .parse(dateString);
|
|
|
+ return new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm").parse(dateString);
|
|
|
} catch (ParseException e) {
|
|
|
return null;
|
|
|
}
|
|
@@ -169,8 +184,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
* @return
|
|
|
*/
|
|
|
public static String dateParseString(Date date) {
|
|
|
- java.text.DateFormat df = new java.text.SimpleDateFormat(
|
|
|
- "yyyy-MM-dd HH:mm:ss");
|
|
|
+ java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
return df.format(date);
|
|
|
}
|
|
|
|
|
@@ -304,8 +318,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
*/
|
|
|
public static Date getTimePriTenDay(Date date, int n) {
|
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- return convertToDateTime(df.format(new Date(date.getTime() + n * 24
|
|
|
- * 60 * 60 * 1000)));
|
|
|
+ return convertToDateTime(df.format(new Date(date.getTime() + n * 24 * 60 * 60 * 1000)));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -315,13 +328,12 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
* @return String
|
|
|
*/
|
|
|
public static String dateToString(Date date) {
|
|
|
-
|
|
|
try {
|
|
|
- if (date != null)
|
|
|
+ if (date != null) {
|
|
|
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
- System.gc();
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
@@ -335,12 +347,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
public static Date stringToDate(String dateStr) {
|
|
|
|
|
|
try {
|
|
|
- if (dateStr != null)
|
|
|
- return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
- .parse(dateStr);
|
|
|
+ if (dateStr != null) {
|
|
|
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr);
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
- System.gc();
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
@@ -381,8 +392,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
try {
|
|
|
- Long dateDiff = sdf.parse(sdf.format(new Date())).getTime()
|
|
|
- - sdf.parse(sdf.format(time)).getTime();
|
|
|
+ Long dateDiff = sdf.parse(sdf.format(new Date())).getTime() - sdf.parse(sdf.format(time)).getTime();
|
|
|
|
|
|
Long day = dateDiff / (24 * 60 * 60 * 1000);
|
|
|
|
|
@@ -423,7 +433,6 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
return df.format(d);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 比较两日期(字符)的大小,日期格式为yyMMdd.
|
|
|
*
|
|
@@ -433,10 +442,9 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
*/
|
|
|
public static final boolean compareDate(String beginDate, String endDate) {
|
|
|
|
|
|
- long begin = Integer.parseInt(beginDate.substring(0, 4)
|
|
|
- + beginDate.substring(5, 7) + beginDate.substring(8, 10));
|
|
|
- long end = Integer.parseInt(endDate.substring(0, 4)
|
|
|
- + endDate.substring(5, 7) + endDate.substring(8, 10));
|
|
|
+ long begin =
|
|
|
+ Integer.parseInt(beginDate.substring(0, 4) + beginDate.substring(5, 7) + beginDate.substring(8, 10));
|
|
|
+ long end = Integer.parseInt(endDate.substring(0, 4) + endDate.substring(5, 7) + endDate.substring(8, 10));
|
|
|
if (begin > end) {
|
|
|
return false;
|
|
|
} else {
|
|
@@ -454,11 +462,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
public static String dateToString(Date date, String format) {
|
|
|
|
|
|
try {
|
|
|
- if (date != null)
|
|
|
+ if (date != null) {
|
|
|
return new SimpleDateFormat(format).format(date);
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
- System.gc();
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
@@ -512,12 +520,12 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
public static long subDateGetFullMonth(Date date1, Date date2) {
|
|
|
DateCalculate culate = DateCalculate.calculate(date1, date2);
|
|
|
long month = culate.getDifferenceOfMonths();
|
|
|
- if (culate.getDifferenceOfDays() > 0)
|
|
|
+ if (culate.getDifferenceOfDays() > 0) {
|
|
|
month++;
|
|
|
+ }
|
|
|
return month;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 日期提前一天
|
|
|
*
|
|
@@ -538,7 +546,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
* @return
|
|
|
*/
|
|
|
public static String beforeOneDayByCurDate() {
|
|
|
- return beforeOneDayByDate(getCurrentDateTime(), DATE_FORMAT);
|
|
|
+ return beforeOneDayByDate(getCurrentDateTime(), DATE_FORMAT.get());
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -561,7 +569,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
* @return
|
|
|
*/
|
|
|
public static String beforeOneMonthByCurDate() {
|
|
|
- return beforeOneMonthByDate(getCurrentDateTime(), DATE_FORMAT);
|
|
|
+ return beforeOneMonthByDate(getCurrentDateTime(), DATE_FORMAT.get());
|
|
|
}
|
|
|
|
|
|
public static void main(String[] args) {
|