Преглед на файлове

钉钉会议优化时间格式

cr преди 1 месец
родител
ревизия
518e3f3ae6
променени са 1 файла, в които са добавени 36 реда и са изтрити 18 реда
  1. 36 18
      blade-service/blade-dingding/src/main/java/org/springblade/dingding/service/impl/MeetingServiceImpl.java

+ 36 - 18
blade-service/blade-dingding/src/main/java/org/springblade/dingding/service/impl/MeetingServiceImpl.java

@@ -310,24 +310,42 @@ public class MeetingServiceImpl implements MeetingService {
             ZonedDateTime startTime = ZonedDateTime.parse(startDateTime);
             ZonedDateTime endTime = ZonedDateTime.parse(endDateTime);
 
-            // 手动构建格式
-            String startFormatted = String.format("%d年%d月%d日 %s %02d:%02d",
-                    startTime.getYear(),
-                    startTime.getMonthValue(),
-                    startTime.getDayOfMonth(),
-                    startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINESE),
-                    startTime.getHour(),
-                    startTime.getMinute());
-
-            String endFormatted = String.format("%d年%d月%d日 %s %02d:%02d",
-                    endTime.getYear(),
-                    endTime.getMonthValue(),
-                    endTime.getDayOfMonth(),
-                    endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINESE),
-                    endTime.getHour(),
-                    endTime.getMinute());
-
-            return startFormatted + " ~ " + endFormatted;
+            // 检查是否为同一天
+            if (startTime.toLocalDate().equals(endTime.toLocalDate())) {
+                // 同一天格式:2025年9月5日 星期五 10:00~12:00
+                String datePart = String.format("%d年%d月%d日 %s",
+                        startTime.getYear(),
+                        startTime.getMonthValue(),
+                        startTime.getDayOfMonth(),
+                        startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINESE));
+
+                String timeRange = String.format("%02d:%02d~%02d:%02d",
+                        startTime.getHour(),
+                        startTime.getMinute(),
+                        endTime.getHour(),
+                        endTime.getMinute());
+
+                return datePart + " " + timeRange;
+            } else {
+                // 不同天的原有格式
+                String startFormatted = String.format("%d年%d月%d日 %s %02d:%02d",
+                        startTime.getYear(),
+                        startTime.getMonthValue(),
+                        startTime.getDayOfMonth(),
+                        startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINESE),
+                        startTime.getHour(),
+                        startTime.getMinute());
+
+                String endFormatted = String.format("%d年%d月%d日 %s %02d:%02d",
+                        endTime.getYear(),
+                        endTime.getMonthValue(),
+                        endTime.getDayOfMonth(),
+                        endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINESE),
+                        endTime.getHour(),
+                        endTime.getMinute());
+
+                return startFormatted + " ~ " + endFormatted;
+            }
         } catch (Exception e) {
             e.printStackTrace();
             return "时间格式错误";