How to convert LocalDate to SQL Date Java?

醉酒当歌 提交于 2019-12-17 07:15:45

问题


How do I convert a LocalDate to a java.sql.Date?

Attempt:

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

This fails (won't compile) and all I can find is Joda time stuff.

I'm using Java 8


回答1:


The answer is really simple;

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

If you would want to convert it the other way around, you do it like this:

Date date = r.getDate();
LocalDate localD = date.toLocalDate();

r is the record you're using in JOOQ and .getDate() is the method for getting the date out of your record; let's say you have a date column called date_of_birth, then your get method should be called getDateOfBirth().




回答2:


If you want current date:

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

If you want a specific date:

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



回答3:


Have you tried using the toDate() method of LocalDate?

As in:

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

In general, it is a good idea to specify how it fails rather than just say "it fails".



来源:https://stackoverflow.com/questions/29168494/how-to-convert-localdate-to-sql-date-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!