如何将LocalDate转换为SQL Date Java?

2022-08-31 09:17:32

如何将本地日期转换为 ?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中使用的记录,并且是从记录中获取日期的方法;假设您有一个名为 date_of_birth 的日期列,那么您的 get 方法应该称为 。.getDate()getDateOfBirth()


答案 2

如果您想要当前日期:

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

如果您想要一个特定的日期:

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

推荐