Как проверить время между 2 датами

#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);
}