tl; dr
LocalDateTime.parse( "2011/06/13 17:52:20".replace( " " , "T" ) )
.isBefore( LocalDateTime.now() )
true
Подробности
Другие ответы верны в том, что вы можете (а) сравнивать по алфавитуэти конкретные строки или (b) сравниваются в хронологическом порядке после разбора на объекты даты и времени.
И помните, что форматы даты и времени не имеют «формата».Они содержат информацию о дате и времени.Они могут генерировать строку в определенном формате, но объект даты и времени является отдельным и отличным.
В других ответах используются старые классы даты и времени, которые вызывают проблемытеперь унаследованы, заменены классами java.time.
В ваших входах отсутствует информация о смещении от UTC и часовом поясе.Поэтому мы должны проанализировать их как LocalDateTime
объектов.Для анализа замените пробел в середине символом T
в соответствии со стандартом ISO 8601 для форматирования строк, представляющих значения даты и времени.
String input = "2011/06/13 17:52:20".replace( " " , "T" );
LocalDateTime ldtThen = LocalDateTime.parse( input ) ;
LocalDateTime ldtNow = LocalDateTime.now( ZoneId.of( "America/Montreal" ) ) ;
Сравните.
boolean ldtThenIsBefore = ldtThen.isBefore( ldtNow );
boolean ldtThenIsAfter = ldtThen.isAfter( ldtNow );
boolean ldtThenIsEqual = ldtThen.isEqual( ldtNow );
О java.time
Фреймворк java.time встроен в Java 8 и более поздние версии.Эти классы вытесняют проблемные старые устаревшие классы даты и времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
.
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial .И поиск переполнения стека для многих примеров и объяснений.Спецификация: JSR 310 .
Где получить классы java.time?
Проект ThreeTen-Extra расширяет Java.время с дополнительными занятиями.Этот проект является полигоном для возможных будущих дополнений к java.time.Здесь вы можете найти некоторые полезные классы, такие как Interval
, YearWeek
, YearQuarter
и more .