I would go with the second way, because the newer format engine DateTimeFormatter is immutable in contrast to SimpleDateFormat and also offers a more modern API in general. It is even more performant than the old stuff, especially in multi-threading-environment (although there are still quicker libraries outside according to my observations).
It is also very easy to convert java.sql.Date to LocalDate thanks to a built-in conversion method.
In addition: Since your SQL-date represents a plain calendar date, the type LocalDate is semantically a much better match than the type java.util.Date (used by SimpleDateFormat) because latter one represents a global instant which is quite different from a calendar date. So going the second way you don't need to bother with any time component which makes the problem/task easier to understand regarding your input.