|
@@ -1,6 +1,7 @@
|
|
|
package thyyxxk.webserver.utils;
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import thyyxxk.webserver.constants.GetDateFormat;
|
|
|
|
|
|
import java.text.DateFormat;
|
|
|
import java.text.ParseException;
|
|
@@ -46,6 +47,16 @@ public class DateUtil {
|
|
|
return new Date();
|
|
|
}
|
|
|
|
|
|
+ public static Date parse(String source, String pattern) {
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat(pattern);
|
|
|
+ try {
|
|
|
+ return sdf.parse(source);
|
|
|
+ } catch (ParseException e) {
|
|
|
+ log.error("将字符串转换成日期出错", e);
|
|
|
+ }
|
|
|
+ return new Date();
|
|
|
+ }
|
|
|
+
|
|
|
public static long getTimestamp(String datetime) throws ParseException {
|
|
|
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
return df.parse(datetime).getTime();
|
|
@@ -172,7 +183,36 @@ public class DateUtil {
|
|
|
}
|
|
|
|
|
|
public static Boolean shiJianDaXiao(String startTime, String endTime, String yunSuanFu) {
|
|
|
- return shiJianDaXiao(parse(startTime), parse(endTime), yunSuanFu);
|
|
|
+ if (dateStrIsValid(startTime, GetDateFormat.DATE_TIME) && dateStrIsValid(endTime, GetDateFormat.DATE_TIME)) {
|
|
|
+ return shiJianDaXiao(parse(startTime), parse(endTime), yunSuanFu);
|
|
|
+ } else if (dateStrIsValid(startTime, GetDateFormat.TIME) && dateStrIsValid(endTime, GetDateFormat.TIME)) {
|
|
|
+ return shiJianDaXiao(parse(startTime, GetDateFormat.TIME), parse(endTime, GetDateFormat.TIME), yunSuanFu);
|
|
|
+ } else if (dateStrIsValid(startTime, GetDateFormat.DATE) && dateStrIsValid(endTime, GetDateFormat.DATE)) {
|
|
|
+ return shiJianDaXiao(parse(startTime, GetDateFormat.DATE), parse(endTime, GetDateFormat.DATE), yunSuanFu);
|
|
|
+ } else {
|
|
|
+ log.info("日期格式错误");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 验证字符串是否为指定日期格式
|
|
|
+ *
|
|
|
+ * @param rawDateStr 待验证字符串
|
|
|
+ * @param pattern 日期字符串格式, 例如 "yyyy-MM-dd"
|
|
|
+ * @return 有效性结果, true 为正确, false 为错误
|
|
|
+ */
|
|
|
+ public static boolean dateStrIsValid(String rawDateStr, String pattern) {
|
|
|
+ SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
|
|
|
+ Date date = null;
|
|
|
+ try {
|
|
|
+ // 转化为 Date类型测试判断
|
|
|
+ date = dateFormat.parse(rawDateStr);
|
|
|
+ return rawDateStr.equals(dateFormat.format(date));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|