tl; dr
Используйте современные java.time классы для анализа ваших строк , которые, как оказалось, соответствуют стандартуформат .
LocalDate.parse( "2258-11-01" )
.isAfter(
LocalDate.parse( "2258-10-31" )
)
true
Подробности
Как уже упоминалось, шаблон форматирования чувствителен к регистру, а ваш - неправильный.
Другая проблема: вы неуместно сжимаете значение только для даты в тип, предназначенный для даты с временем суток в UTC.
Кроме того, вы используете ужасную старую датуклассы, которые были вытеснены несколько лет назад современными java.time классами.
Ваши входные строки соответствуют превосходному стандарту ISO 8601 .Классы java.time по умолчанию используют эти форматы при разборе / генерации строк.Поэтому не нужно даже беспокоиться об определении шаблона форматирования.
LocalDate ld1 = LocalDate.parse( "2258-11-01" ) ;
LocalDate ld2 = LocalDate.parse( "2258-10-31" ) ;
Сравните.
boolean isAfter = ld1.isAfter( ld2 ) ; // true
Все это уже много раз уже освещалось в Переполнении стека.Пожалуйста, научитесь тщательно искать переполнение стека перед публикацией.
О java.time
java.time Фреймворк встроен в Java 8 и выше.Эти классы вытесняют старые классные устаревшие классы даты и времени, такие как java.util.Date
, Calendar
и & SimpleDateFormat
.
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial .И поиск переполнения стека для многих примеров и объяснений.Спецификация: JSR 310 .
Вы можете обмениваться java.time объектами напрямую с вашей базой данных.Используйте драйвер JDBC , совместимый с JDBC 4.2 или более поздней версии.Нет необходимости в строках, нет необходимости в java.sql.*
классах.
Где получить классы java.time?
ThreeTen-Extra Проект расширяет java.time дополнительными классами.Этот проект является полигоном для возможных будущих дополнений к java.time.Здесь вы можете найти несколько полезных классов, таких как Interval
, YearWeek
, YearQuarter
и more .