瀏覽代碼

修复框架时间工具类bug

liukx 3 年之前
父節點
當前提交
f9c54e2fd3

+ 2 - 2
elab-core/src/main/java/com/elab/core/aop/annotations/ExceptionHandle.java

@@ -10,7 +10,7 @@ import java.lang.annotation.*;
  * @email liuhx@elab-plus.com
  */
 @Inherited
-@Target(ElementType.METHOD)
+@Target(value = {ElementType.TYPE,ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
 public @interface ExceptionHandle {
 
@@ -26,7 +26,7 @@ public @interface ExceptionHandle {
      *
      * @return
      */
-    Class ModuleName();
+    Class ModuleName() default Object.class;
 
     /**
      * 异常是否需要往外部调用方抛

+ 44 - 36
elab-core/src/main/java/com/elab/core/utils/DateUtils.java

@@ -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) {

+ 56 - 0
elab-core/src/test/java/com/elab/test/utils/FileCase.java

@@ -0,0 +1,56 @@
+package com.elab.test.utils;
+
+import org.junit.Test;
+
+import java.io.File;
+import java.util.HashSet;
+import java.util.Set;
+
+public class FileCase {
+    Set<String> fileList = new HashSet<>();
+    @Test
+    public void testFile(){
+        String filePath = "D:\\github\\MyHome\\文章";
+        File[] files = new File(filePath).listFiles();
+        deepFile(files,0);
+    }
+
+    private void deepFile(File[] files,int index) {
+        for (int i = 0; i < files.length ; i++) {
+            File file = files[i];
+            if(file.isDirectory()){
+                if(fileList.add(file.getName()) && !isEndWith(file.getName(),"assets")) {
+                    System.out.println("##"+appendIndex("#",index) +" "+ file.getName());
+                }
+                deepFile(file.listFiles(),index + 1);
+            }else{
+                if(!isEndWith(file.getName(),"png","gif","jpg")) {
+                    System.out.println(appendIndex("-",index)+"\t"+ "["+file.getName()+"]("+mdPath(file.getPath(),"D:\\github\\MyHome",".")+")");
+                }
+            }
+        }
+    }
+
+    public String mdPath(String path,String replaceStr,String replace){
+        return path.replace(replaceStr,replace);
+    }
+
+    public String appendIndex(String str,int index){
+        StringBuilder stringBuilder = new StringBuilder();
+        for (int i = 0; i < index; i++) {
+            stringBuilder.append(str);
+        }
+        return stringBuilder.toString();
+    }
+
+
+    private boolean isEndWith(String fileName,String... fileEndsWith){
+        for (int i = 0; i < fileEndsWith.length; i++) {
+            String s = fileEndsWith[i];
+            if(fileName.endsWith(s)){
+                return true;
+            }
+        }
+        return false;
+    }
+}

文件差異過大導致無法顯示
+ 26 - 2
elab-core/src/test/java/com/elab/test/utils/JSONUtilsTest.java