tl;dr
You asked:
check the date is later than today's date
LocalDate                            // Represent a date-only value, without time-of-day and without time zone or offset-from-UTC.
.parse( "2020-01-23" )               // No need to specify formatting pattern when parsing a string in standard ISO 8601 format. Returns a `LocalDate` object.
.isAfter                             // Compare one `LocalDate` object to another.
(
    LocalDate.now                    // Capture the current date as seen in a particular time zone.
    (
        ZoneId.of( "Africa/Tunis" )  // or: ZoneId.systemDefault()
    )                                // Returns a `LocalDate` object.
)                                    // Returns `boolean`.
Details
Modern solution uses java.time classes, specifically java.time.LocalDate. Compare with isAfter method. You are using terrible date-time classes that were years ago supplanted by java.time.
No need to specify a formatting pattern. Your input strings comply with the ISO 8601 standard used by default in java.time.
By the way, formatting codes are case-sensitive, and day-of-month is dd rather than the DD you used. So the formatting pattern used here by default is akin to uuuu-MM-dd.
boolean isFuture = LocalDate.parse( "2020-01-23" ).isAfter( LocalDate.now() ) ;
Better to explicitly specify desired/expected time by which to determine today’s date. If omitted, the JVM’s current default time zone is implicitly applied.
boolean isFuture = LocalDate.parse( "2020-01-23" ).isAfter( LocalDate.now( ZoneId.of( "America/Edmonton" ) ) ) ;