115

如何将 LocalDate 转换为java.sql.Date

试图:

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

这失败了(不会编译),我能找到的只是 Joda 时间的东西。

我正在使用 Java 8

4

3 回答 3

207

答案很简单;

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()

于 2015-03-20T14:10:22.580 回答
0

如果你想要当前日期:

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

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

Date date = Date.valueOf(LocalDate.of(1967, 06, 22));
于 2017-01-26T08:31:32.390 回答
-1

您是否尝试过使用 LocalDate 的 toDate() 方法?

如:

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

一般来说,最好指定它是如何失败的,而不是仅仅说“它失败了”。

于 2015-03-20T14:11:27.423 回答