Как преобразовать 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
Ответы
Ответ 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));