У меня есть уникальная ситуация. Я работаю над старым проектом, который находится на старом сервере WebLogic, который (A) не пропускает ничего из Java 6, и (B) загрязняет загрузчик классов старой версией JodaTime (версия 1.2, если быть точным).Проверьте, есть ли DateTime в будущем со старой версией JodaTime
Клиент, с которым я работаю, имеет стандартную платформу разработки, включающую Java 8 и JodaTime для проектов, которые застряли в более ранних версиях Java. Поэтому я застрял, используя эту старую версию JodaTime (310-Backport - отличное решение, но мне не разрешено использовать его).
Мне нужно создать метод утилиты, который проверяет, есть ли DateTime
после сегодняшнего дня (независимо от времени). JodaTime 1,2 не имеет LocalDate
или удобные статические фабричные методы как now()
, поэтому я пришел с этим:
public static boolean isAfterToday(DateTime dateTime) {
YearMonthDay date = new YearMonthDay(dateTime);
YearMonthDay today = new YearMonthDay();
return date.isAfter(today);
}
Он чувствует себя немного неприглядное, потому что в более поздних версиях JodaTime, все в YearMonthDay
классе было устарел и заменен LocalDate
, который, к сожалению, я не могу использовать. Есть ли лучший способ сделать это? Кроме того, я пытаюсь снять время с DateTime
, переведя его на YearMonthDay
... есть ли какие-либо «gotchas», которые я пропускаю или должен знать?
Несколько дополнительных заметок: Я предполагаю, что я уже проверил нулевой аргумент dateTime
, и часовой пояс не должен быть проблемой, потому что все часовые пояса в приложении - GMT. Кроме того, I am разрешено использовать библиотеки Apache Commons и Guava.
Интересно. Мне раньше не приходилось сравнивать строковое представление. Если годы не дополнены, это приведет к неправильным результатам в течение многих лет до 1000 г. н.э. или после 9999 г. н.э., но я не беспокоюсь об этом. –