У меня есть фильтр, который является строкой и может принимать только 3 формата даты - YYYY
, YYYY-MM
, YYYY-MM-DD
.
Я хочу проверить, находится ли запрашиваемая строка в диапазоне двух дат.
Допустим, у меня есть две даты (Instants) в записи - 2010-05-01T00:00:00Z
& 2020-03-01TT23:59:59.999999999Z
Тогда:
Запрошенная дата | Диапазон результатов
2018 | в диапазоне
2010 | в диапазоне
2009 | НЕ в диапазоне
2018-03 | в диапазоне
2010-02 | НЕ в диапазоне
2010-05 | в диапазоне (спасибо за исправление @Ole VV)
2012-01-05 | в диапазоне
2020-03-01 | в диапазоне
2020-04-01 | НЕ в диапазоне
Я использую Java время, чтобы проверить, является ли дата до или после указанных дат, но в моем случае у меня есть строка, которая может быть в любой из 3-х дат -formates.
Одно из решений, которое я могу придумать, - это если запрос ГГГГ, тогда проверяйте, если это между годами двух дат. Если запрос ГГГГ-ММ, проверьте, соответствует ли он году и месяцу двух дат. И так далее. Но я не уверен, как заставить это работать.
Может кто-нибудь помочь решить эту проблему?