Getting the date from a ResultSet for use with java.time classes
Solution 1:
Most database vendors don't support JDBC 4.2 yet. This specification says that the new java.time
-types like LocalDate
will/should be supported using the existing methods setObject(...)
and getObject()
. No explicit conversion is required and offered (no API-change).
A workaround for the missing support can be manual conversion as described on the Derby-mailing list.
Something like:
LocalDate birthDate = resultSet.getDate("birth_date").toLocalDate();
As you can see, these conversions use the non-deprecated types java.sql.Date
etc., see also the javadoc.
Solution 2:
New Methods On Timestamp
Java 8 includes new methods on the java.sql.Timestamp
class to convert to and from java.time objects. These convenience methods are a stop-gap measure until JDBC drivers can be updated for the new data types.
toInstant
toLocalDateTime
valueOf
from
Ditto For Date
& Time
The java.sql.Date
and java.sql.Time
classes have similar java.time conversion methods added in Java 8 as well.