Подтвердить что ты не робот

Как преобразовать LocalDate в SQL Date Java?

Как преобразовать LocalDate в java.sql.Date?

Попытка:

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

Это не сработает (не будет компилироваться), и все, что я могу найти, это материал времени Joda.

Я использую Java 8

4b9b3361

Ответ 1

Ответ действительно прост,

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

Если вы хотите конвертировать его наоборот, вы делаете это так:

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

r - это запись, которую вы используете в JOOQ, а .getDate() - метод для получения даты из вашей записи; скажем, у вас есть столбец даты с именем date_of_birth, тогда ваш метод get следует называть getDateOfBirth().

Ответ 2

Вы пытались использовать метод toDate() для LocalDate?

Как в:

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

В общем, это хорошая идея, чтобы указать, как он терпит неудачу, а не просто сказать "он не работает".

Ответ 3

Если вам нужна текущая дата:

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

Если вам нужна конкретная дата:

Date date = Date.valueOf(LocalDate.of(1967, 06, 22));