如何将LocalDate转换为SQL Date Java?

问题描述 投票:70回答:3

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

尝试:

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

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

我正在使用Java 8

java java-8 converter java-time sqldatetime
3个回答
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()


0
投票

如果你想要当前日期:

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

如果您想要特定日期:

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

-1
投票

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

如:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.