Как узнать, находится ли запрашиваемое время между временными диапазонами в Java - PullRequest
1 голос
/ 11 марта 2020

У меня есть дата, введенная в формате строки (например: - 2020-01-08T07:00:00), и я хочу проверить, находится ли время ввода от 6:00 до 15:00. Любая идея, как я могу проверить это?

Я попробовал ниже код: -

java.util.Date inputDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse("2020-01-08T07:00:00");
if(inputDate.getTime() < "06:00" && inputDate.getTime() > "15:00") 

, но это не может сравниться со строкой, очевидно, поэтому я не понимаю, как это сравнить?

1 Ответ

5 голосов
/ 11 марта 2020

Пожалуйста, избегайте использования устаревшей библиотеки дат, вместо этого я предлагаю использовать java.time, например:

// format your date time by using the default formater of LocalDateTime
LocalDateTime ldt = LocalDateTime.parse("2020-01-08T07:00:00");

// Get the time part from your LocalDateTime
LocalTime lt = ldt.toLocalTime();

// create a patter to format the two times
DateTimeFormatter hmFormatter = DateTimeFormatter.ofPattern("H:mm");

// use isAfter and isBefore to check if your date in the range you expect
if (lt.isAfter(LocalTime.parse("6:00", hmFormatter)) && 
        lt.isBefore(LocalTime.parse("15:00", hmFormatter))) {

}
...