如何将LocalDate转换为SQL Date Java?

Gem*_*tic 83 java converter sqldatetime java-8 java-time

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

尝试:

Record r = new Record();
LocalDate date = new Date(1967, 06, 22);
r.setDateOfBirth(new Date(date));
Run Code Online (Sandbox Code Playgroud)

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

我正在使用Java 8

Gem*_*tic 143

答案很简单;

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

如果你想以相反的方式转换它,你可以这样做:

Date date = r.getDate();
LocalDate localD = date.toLocalDate();
Run Code Online (Sandbox Code Playgroud)

r是您在JOOQ中使用的记录,是从记录.getDate()中获取日期的方法; 假设你有一个名为date_of_birth的日期列,那么应该调用你的get方法getDateOfBirth().

  • 您正在回答有关此问题所涉及的`java.util.Date`**NOT**`java.sql.Date`的问题. (11认同)
  • 根据java.time。*作者,这是一个“可怕的黑客”:/sf/ask/2314683311/#comment72769769_33066935 (3认同)