web-dev-qa-db-ja.com

LocalDateをSQL Date Javaに変換する方法は?

LocalDateをJava.sql.Dateに変換するにはどうすればよいですか?

試行:

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

これは失敗します(コンパイルできません)そして私が見つけることができるのはJodaの時間のものだけです。

Java 8を使用しています

77
Gemtastic

答えは本当に簡単です。

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()と呼ばれるとしましょう。

135
Gemtastic

現在の日付が必要な場合:

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

特定の日付が必要な場合:

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