#java #spring-boot
#java #весенняя загрузка
Вопрос:
У меня есть 2 параметра ( java.util.Date
), и мне нужно проверить, находится ли мое текущее время между этими 2 датами. Для этого мне нужно игнорировать мою дату и просто проверять свое время.
Мне нужно игнорировать yyyy/MM/dd
и просто проверить мой hh:mm:ss
. Например:
Date 1: 2008/11/10 08:05:55
Date 2: 2010/12/11 10:12:33
Current Date: 2020:09:29 09:12:13
Мне нужна проверка Date 1 <= Current Date <= Date 2
Но мне нужна проверка так hh:mm:ss
же, как:
08:05:55 <= 09:12:13 <= 10:12:33 = True
Игнорируя yyyy/MM/dd
Комментарии:
1. Пожалуйста, добавьте свой код, как попытаться достичь своей цели.
2. Просто преобразуйте все три в
String
s, используя 24-часовой формат времени, напримерHHmmss
, затем сравните строки.
Ответ №1:
Я бы предложил преобразовать в Java 8 временные объекты API и использовать их интуитивно понятные методы.
Вот несколько полезных методов, которые я собрал для вас:
public static boolean nowIsBetweenInclusive(Date start, Date end) {
return timeIsBetweenInclusive(LocalTime.now(), asLocalTime(start), asLocalTime(end));
}
public static LocalTime asLocalTime(@NonNull Date date) {
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalTime();
}
public static boolean timeIsBetweenInclusive(@NotNull LocalTime time, LocalTime start, LocalTime end) {
return start != null amp;amp; end != null amp;amp; !time.isBefore(start) amp;amp; !time.isAfter(end);
}