Я не мог заставить Facebook выбрать правильное изображение из определенного сообщения, поэтому я сделал то, что описано на этой странице:
https://webapps.stackexchange.com/questions/ 18468 / add-meta-tags-to-individual-blogger-posts
Другими словами, что-то вроде этого:
В принципе, вы собираетесь для жесткого кодирования инструкции if в HTML вашего сайта, чтобы заставить ее изменить мета-контент для того, что вы изменили для этого сообщения. Это грязное решение, но оно работает.
boolean isWithinRange(Date testDate) {
return !(testDate.before(startDate) || testDate.after(endDate));
}
не кажется что неловким мне. Обратите внимание, что я записал этому тот путь вместо
return testDate.after(startDate) && testDate.before(endDate);
, таким образом, это работало бы, даже если бы testDate был точно равен одному из случаев конца.
Это - корректный путь. Календари работают тот же путь. Лучшее, которое я мог предложить Вам (на основе Вашего примера) является этим:
boolean isWithinRange(Date testDate) {
return testDate.getTime() >= startDate.getTime() &&
testDate.getTime() <= endDate.getTime();
}
Date.getTime () возвращает количество миллисекунд с тех пор 01.01.1970 0:00:00 GMT и является длинным, таким образом, это легко сопоставимо.
Рассмотрите использование Время Joda . Я люблю эту библиотеку и желаю, чтобы она заменила бы текущую ужасную путаницу, которые являются существующими классами Даты и Календаря Java. Это - сделанная правильно обработка даты.
РЕДАКТИРОВАНИЕ: это больше не 2009 и Java 8 отсутствовавший целую вечность. Используйте Java 8 созданный в java.time классах, которые основаны на Времени Joda, как Basil Bourque упоминает выше. В этом случае Вы захотите класс Периода и здесь учебное руководство Oracle о том, как использовать его.
Простой способ состоит в том, чтобы преобразовать даты в миллисекунды после 1 января 1970 (используйте Date.getTime ()), и затем сравнивают эти значения.