如何将LocalDate转换为SQL Date Java?

时间:2015-03-20 14:08:43

标签: java java-8 converter java-time sqldatetime

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

尝试:

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

(将无法编译)失败,我能找到的就是Joda时间。

我正在使用Java 8

3 个答案:

答案 0 :(得分:124)

答案很简单;

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

答案 1 :(得分:0)

如果您想要当前日期:

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

如果您想要特定日期:

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

答案 2 :(得分:-1)

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

如:

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

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