nahida hace 1 año
padre
commit
8146bde88a

+ 16 - 7
data-service/src/main/java/com/zksy/data/service/impl/XcrEnterprisePollutionPermitInfoServiceImpl.java

@@ -52,9 +52,9 @@ public class XcrEnterprisePollutionPermitInfoServiceImpl extends ServiceImpl<Xcr
         });
         // 定义多种日期格式
         String[] datePatterns = {
-                "dd-MMM-yy HH.mm.ss.SSSSSSSSS a", // 支持中文月份和 AM/PM 标记
-                "dd-MMM-yy", // 英文月份
-                "yyyy/MM/dd HH:mm:ss.SSSSSSSSS a",
+                "dd-MMM-yy", // 09-DEC-21
+                "dd-MMM-yy HH.mm.ss.SSSSSSSSS a", // 09-7月 -20 12.00.00.000000000 上午
+                "yyyy/MM/dd HH:mm:ss.SSS", // 2020/04/16 00:00:00.000
                 "yyyy-MM-dd",
                 "yyyy.MM.dd"
         };
@@ -69,10 +69,16 @@ public class XcrEnterprisePollutionPermitInfoServiceImpl extends ServiceImpl<Xcr
     }
     // 尝试多种日期格式进行解析
     private Date parseDate(String dateString, String[] patterns) {
-        for (String pattern : patterns) {
-            try {
-                SimpleDateFormat inputFormat = new SimpleDateFormat(pattern, Locale.US);
-                return inputFormat.parse(dateString);
+        if (dateString == null || dateString.trim().isEmpty()) {
+            log.warn("日期字符串为空或空白: {}", dateString);
+            return null; // 或者返回一个默认日期
+        }
+            for (String pattern : patterns) {
+                try {
+                    // 使用正确的 Locale
+                    Locale locale = pattern.contains("a") ? Locale.CHINA : Locale.US;
+                    SimpleDateFormat inputFormat = new SimpleDateFormat(pattern, locale);
+                    return inputFormat.parse(dateString);
             } catch (ParseException e) {
                 // 继续尝试下一个格式
             }
@@ -81,6 +87,9 @@ public class XcrEnterprisePollutionPermitInfoServiceImpl extends ServiceImpl<Xcr
     }
 
     private Date formatDate(Date date) {
+        if (date == null) {
+            return null; // 或者返回一个默认值
+        }
         SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
         String formattedDateStr = outputFormat.format(date);
         try {