Как проверить, находится ли текущее время между startTime и endTime в Groovy - PullRequest
1 голос
/ 16 марта 2012

Как проверить, находится ли currentTime между startTime и endTime.К сожалению, мой класс домена должен использовать startTime и endTime в качестве строк.

Обновление:

statTime - это просто время, например, 6.00 endTime - это просто время, например, 18: 00

Ответы [ 3 ]

3 голосов
/ 16 марта 2012

Разобрать время начала и окончания до даты, а затем currentTime in startTime..endTime

3 голосов
/ 16 марта 2012

Что ж, очевидный подход состоит в том, чтобы разобрать обе строки в любое представление даты / времени, которое вам нравится (лично я предпочитаю Joda Time ), а затем сравнить текущую дату / время с этим. Вы пробовали это? Где ты стал отклеен? Если проблема в том, что они раз , а не дата / время значения, класс Joda Time LocalTime - это то, что вам нужно. (Кстати, непонятно, почему ваше представление domain должно быть строками - вы должны сделать ваше представление домена наиболее естественным и преобразовать его в / из текстовых представлений на границах, где вам абсолютно необходимо, ИМО.)

Я бы настоятельно рекомендовал вам , а не использовать какой-то статический вызов для получения текущей даты и времени. Вместо этого используйте внедрение зависимостей, чтобы внедрить «службу текущего времени», как и любую другую зависимость - вы можете затем выполнить модульное тестирование с «поддельными часами», которые контролируются в тестах, и внедрить реальную реализацию (которая может использовать System.currentTimeMillis или что вы хотите) для производства.

0 голосов
/ 16 марта 2012

Используйте Groovy java.util.Date.parse (строковый формат, строковый ввод) , чтобы проанализировать строку в java.util.Date , а затем сравнить currentTime с Date.before () и Date.after () . Используйте Date.getTime () для преобразования в метку времени Unix как long , если необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...