diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java index 6b797c6166..06d7caad5d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java @@ -170,12 +170,16 @@ public class TimeUtils { return longToTimeStringWithFormat(timeStamp, DATETIME_MS_FORMAT); } - public static Date getTimeAsDate(String timeString) { + public static Date getHourAsDate(String hour) { + String fullHour = hour; + if (fullHour.length() == 1) { + fullHour = "0" + fullHour; + } try { return Date.from( - LocalTime.parse(timeString, TIME_FORMAT).atDate(LocalDate.now()).atZone(TIME_ZONE).toInstant()); + LocalTime.parse(fullHour, TIME_FORMAT).atDate(LocalDate.now()).atZone(TIME_ZONE).toInstant()); } catch (DateTimeParseException e) { - LOG.warn("invalid time format: {}", timeString); + LOG.warn("invalid time format: {}", fullHour); return null; } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/consistency/ConsistencyChecker.java b/fe/fe-core/src/main/java/org/apache/doris/consistency/ConsistencyChecker.java index d16d331089..c65a48c256 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/consistency/ConsistencyChecker.java +++ b/fe/fe-core/src/main/java/org/apache/doris/consistency/ConsistencyChecker.java @@ -88,8 +88,8 @@ public class ConsistencyChecker extends MasterDaemon { } private boolean initWorkTime() { - Date startDate = TimeUtils.getTimeAsDate(Config.consistency_check_start_time); - Date endDate = TimeUtils.getTimeAsDate(Config.consistency_check_end_time); + Date startDate = TimeUtils.getHourAsDate(Config.consistency_check_start_time); + Date endDate = TimeUtils.getHourAsDate(Config.consistency_check_end_time); if (startDate == null || endDate == null) { return false; diff --git a/fe/fe-core/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java b/fe/fe-core/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java index 593956d5ae..4ebf2df6f2 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java @@ -31,6 +31,8 @@ import org.junit.Before; import org.junit.Test; import java.time.ZoneId; +import java.util.Calendar; +import java.util.Date; import java.util.LinkedList; import java.util.List; import java.util.TimeZone; @@ -177,4 +179,28 @@ public class TimeUtilsTest { } } + @Test + public void testGetHourAsDate() { + Calendar calendar = Calendar.getInstance(); + Date date = TimeUtils.getHourAsDate("1"); + calendar.setTime(date); + Assert.assertEquals(1, calendar.get(Calendar.HOUR_OF_DAY)); + date = TimeUtils.getHourAsDate("10"); + calendar.setTime(date); + Assert.assertEquals(10, calendar.get(Calendar.HOUR_OF_DAY)); + date = TimeUtils.getHourAsDate("24"); + calendar.setTime(date); + Assert.assertEquals(0, calendar.get(Calendar.HOUR_OF_DAY)); + date = TimeUtils.getHourAsDate("05"); + calendar.setTime(date); + Assert.assertEquals(5, calendar.get(Calendar.HOUR_OF_DAY)); + date = TimeUtils.getHourAsDate("0"); + calendar.setTime(date); + Assert.assertEquals(0, calendar.get(Calendar.HOUR_OF_DAY)); + date = TimeUtils.getHourAsDate("13"); + calendar.setTime(date); + Assert.assertEquals(13, calendar.get(Calendar.HOUR_OF_DAY)); + Assert.assertNull(TimeUtils.getHourAsDate("111")); + Assert.assertNull(TimeUtils.getHourAsDate("-1")); + } }