瀏覽代碼

修改时间判断

xueyiming 4 月之前
父節點
當前提交
b6b016f6b6

+ 2 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/common/constants/TimeConstant.java

@@ -6,6 +6,8 @@ public interface TimeConstant {
     Integer HOUR = 60 * 60;
     Integer DAY = 60 * 60 * 24;
 
+    Long MILLISECOND_MINUTE = (long) MINUTE * 1000;
+
     Long MILLISECOND_DAY = (long) DAY * 1000;
 
     Long MILLISECOND_HOUR = (long) HOUR * 1000;

+ 6 - 4
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/CoreServiceImpl.java

@@ -301,12 +301,14 @@ public class CoreServiceImpl implements CoreService {
         }
         // 指定时间
         if (StringUtils.isNotEmpty(planAccount.getPublishPushTime())) {
-            LocalTime currentTime = TimeZoneUtil.currentTime(TimeZoneUtil.Timezone.china);
-            LocalTime pushTime = LocalTime.parse(planAccount.getPublishPushTime());
-            if (currentTime.isBefore(pushTime.minusMinutes(30))) {
+            long pushTime = DateUtil.convertToTimestamp(planAccount.getPublishPushTime());
+            long nowTime = new Date().getTime();
+            // 当前时间距离目标时间超过30分钟
+            if (nowTime + 30 * TimeConstant.MILLISECOND_MINUTE < pushTime) {
                 return false;
             }
-            if (currentTime.isAfter(pushTime.plusMinutes(360))) {
+            // 当前时间已经超过目标时间600分钟
+            if (nowTime - 600 * TimeConstant.MILLISECOND_MINUTE > pushTime) {
                 return false;
             }
         } else if (StringUtils.isNotEmpty(planAccount.getPublishWindowStart())

+ 15 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/utils/DateUtil.java

@@ -1,5 +1,10 @@
 package com.tzld.piaoquan.longarticle.utils;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.Calendar;
 import java.util.Date;
 
@@ -13,4 +18,14 @@ public class DateUtil {
         calendar.set(Calendar.SECOND, 0);
         return calendar.getTime();
     }
+
+    private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+
+    public static long convertToTimestamp(String timeString) {
+        LocalTime localTime = LocalTime.parse(timeString, formatter);
+        LocalDate today = LocalDate.now();
+        LocalDateTime localDateTime = LocalDateTime.of(today, localTime);
+        return localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
+    }
+
 }