|
@@ -248,7 +248,39 @@ public class DateUtil {
|
|
|
public static Date parseDate(String dateString) {
|
|
|
return parseDate(dateString, DATE_FORMAT);
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 将字符(yyyy-MM-dd)转换为日期
|
|
|
+ *
|
|
|
+ * @param dateString
|
|
|
+ * @return 将字符(yyyy-MM-dd)转换为日期
|
|
|
+ */
|
|
|
+ public static Date newParseDate(String dateString) {
|
|
|
+ String format = getTimeFormat(dateString);
|
|
|
+ if(format!=null)
|
|
|
+ {
|
|
|
+ return parseDate(dateString, format);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 按指定的格式,将字符转换为日期
|
|
|
+ *
|
|
|
+ * @param dateString 日期
|
|
|
+ * @param format 格式
|
|
|
+ * @return 按指定的格式,将字符转换为日期
|
|
|
+ */
|
|
|
+ public static Date parseDate(String dateString, String format) {
|
|
|
+ if (isEmpty(format)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
+ try {
|
|
|
+ return new SimpleDateFormat(format).parse(dateString);
|
|
|
+ } catch (Exception e) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
/**
|
|
|
* 将字符(yyyy-MM-dd HH:mm:ss)转换为日期
|
|
|
*
|
|
@@ -258,7 +290,28 @@ public class DateUtil {
|
|
|
public static Date parseDateTime(String dateString) {
|
|
|
return parseDate(dateString, DATE_TIME_FORMAT);
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 将字符(yyyy-MM-dd HH:mm:ss)转换为日期
|
|
|
+ *
|
|
|
+ * @param dateString
|
|
|
+ * @return 将字符(yyyy-MM-dd HH:mm:ss)转换为日期
|
|
|
+ */
|
|
|
+ public static Date parseDateTime(String dateString,String format) {
|
|
|
+ return parseDate(dateString, format);
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 将字符(yyyy-MM-dd HH:mm:ss)转换为日期
|
|
|
+ *
|
|
|
+ * @param time
|
|
|
+ * @return 将字符时间转换为日期
|
|
|
+ */
|
|
|
+ public static Date newParseDateTime(String time) {
|
|
|
+ if(StringUtil.isBlank(time)){return null;}
|
|
|
+ String format = getTimeFormat(time);
|
|
|
+ if(StringUtil.isBlank(format)){return null;}
|
|
|
+ return parseDate(time, format);
|
|
|
+ }
|
|
|
/**
|
|
|
* milliseconds 转化为日期
|
|
|
*
|
|
@@ -756,6 +809,62 @@ public class DateUtil {
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取字符串时间的format
|
|
|
+ * @param time
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String getTimeFormat(String time)
|
|
|
+ {
|
|
|
+ if(StringUtil.isBlank(time))
|
|
|
+ {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ String regex = "\\d+";
|
|
|
+ time = time.replaceAll(regex,"");
|
|
|
+ switch (time)
|
|
|
+ {
|
|
|
+ //===========yyyy年MM月dd日HH时mm分ss秒============
|
|
|
+ case "年月日 时分秒":
|
|
|
+ return "yyyy年MM月dd日 HH时mm分ss秒";
|
|
|
+ case "年月日时分秒":
|
|
|
+ return "yyyy年MM月dd日HH时mm分ss秒";
|
|
|
+ case "年月日 时分":
|
|
|
+ return "yyyy年MM月dd日HH时mm分";
|
|
|
+ case "年月日时分":
|
|
|
+ return "yyyy年MM月dd日HH时mm分";
|
|
|
+ case "年月日 时":
|
|
|
+ return "yyyy年MM月dd日 HH时";
|
|
|
+ case "年月日时":
|
|
|
+ return "yyyy年MM月dd日HH时";
|
|
|
+ case "年月日":
|
|
|
+ return "yyyy年MM月dd日";
|
|
|
+ //===========yyyy-MM-dd HH:mm:ss============
|
|
|
+ case "-- ::":
|
|
|
+ return "yyyy-MM-dd HH:mm:ss";
|
|
|
+ case "-- :":
|
|
|
+ return "yyyy-MM-dd HH:mm";
|
|
|
+ case "-- ":
|
|
|
+ return "yyyy-MM-dd HH";
|
|
|
+ case "--":
|
|
|
+ return "yyyy-MM-dd";
|
|
|
+ //===========yyyy/MM/dd HH:mm:ss============
|
|
|
+ case "// ::":
|
|
|
+ return "yyyy/MM/dd HH:mm:ss";
|
|
|
+ case "// :":
|
|
|
+ return "yyyy/MM/dd HH:mm";
|
|
|
+ case "// ":
|
|
|
+ return "yyyy/MM/dd HH";
|
|
|
+ case "//":
|
|
|
+ return "yyyy/MM/dd";
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//计算时间差,以天数为单位。如:2018-08-08 和 2018-08-05 相差3天
|
|
|
public static int getDistanceTime(Date startTime, Date endTime) {
|
|
|
int days = 0;
|