I'm surprised that java.sql.Date has a method toLocalDate().
java.util.Date or java.time.Instant don't have comparable methods. It seems that in java.time, a ZoneId must always be provided to obtain "LocalFoo" or "OffsetBar".
From the javadoc of java.sql.Date#toLocalDate():
Converts this Date object to a LocalDate. The conversion creates a LocalDate that represents the same date value as this Date in local time zone
Which timezone is "local time zone"? Does it depend on database or JVM settings?
toLocalDateis not mentioned there, and an explicit answer to that specific question would be nice.