Jak przekonwertować LocalDate do SQL date Java?

Jak przekonwertować LocalDate na java.sql.Date?

Próba:

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

To nie działa (nie kompiluje się) i jedyne co mogę znaleźć to Joda time stuff.

Używam Javy 8

Author: Gemtastic, 2015-03-20

3 answers

Odpowiedź jest naprawdę prosta;

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

Jeśli chcesz przekonwertować to na odwrót, zrób to tak:

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

r jest rekordem, którego używasz w JOOQ, a {[3] } jest metodą uzyskiwania daty z twojego rekordu; Załóżmy, że masz kolumnę daty o nazwie date_of_birth, wtedy twoja metoda get powinna być wywołana getDateOfBirth().

 182
Author: Gemtastic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-16 09:59:12

Jeśli chcesz mieć aktualną datę:

Date date = Date.valueOf(LocalDate.now());

Jeśli chcesz konkretną datę:

Date date = Date.valueOf(LocalDate.of(1967, 06, 22));
 0
Author: RichardK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-26 08:53:48

Czy próbowałeś użyć metody toDate () localdate?

Jak w:

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

Ogólnie rzecz biorąc, dobrym pomysłem jest określenie Jak to się nie powiedzie, a nie tylko "to się nie powie".

 -1
Author: juhist,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-20 14:11:27