Search code examples
javajava-8convertersjava-timesqldatetime

How to convert LocalDate to SQL Date Java?


How do I convert a LocalDate to a java.sql.Date?

Attempt:

Record r = new Record();
LocalDate date = new Date(1967, 06, 22);
r.setDateOfBirth(new Date(date));

This fails (won't compile) and all I can find is Joda time stuff.

I'm using Java 8


Solution

  • The answer is really simple;

    import java.sql.Date;
    ...
    LocalDate locald = LocalDate.of(1967, 06, 22);
    Date date = Date.valueOf(locald); // Magic happens here!
    r.setDateOfBirth(date);
    

    If you would want to convert it the other way around, you do it like this:

    Date date = r.getDate();
    LocalDate localD = date.toLocalDate();
    

    r is the record you're using in JOOQ and .getDate() is the method for getting the date out of your record; let's say you have a date column called date_of_birth, then your get method should be called getDateOfBirth().