ฉันจะแปลง LocalDate เป็น a ได้java.sql.Date
อย่างไร
พยายาม:
Record r = new Record();
LocalDate date = new Date(1967, 06, 22);
r.setDateOfBirth(new Date(date));
สิ่งนี้ล้มเหลว(จะไม่รวบรวม)และสิ่งที่ฉันพบคือ Joda time stuff
ฉันใช้ Java 8
ฉันจะแปลง LocalDate เป็น a ได้java.sql.Date
อย่างไร
พยายาม:
Record r = new Record();
LocalDate date = new Date(1967, 06, 22);
r.setDateOfBirth(new Date(date));
สิ่งนี้ล้มเหลว(จะไม่รวบรวม)และสิ่งที่ฉันพบคือ Joda time stuff
ฉันใช้ Java 8
คำตอบ:
คำตอบนั้นง่ายจริงๆ;
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 getDateOfBirth()
แล้ววิธีรับของคุณควรจะเรียกว่า
java.util.Date
NOT java.sql.Date
ซึ่งคำถามนี้เกี่ยวกับ
หากคุณต้องการวันที่ปัจจุบัน:
Date date = Date.valueOf(LocalDate.now());
หากคุณต้องการวันที่เฉพาะ:
Date date = Date.valueOf(LocalDate.of(1967, 06, 22));
Date date = Date.valueOf(LocalDate.of(1967, 06, 22));
หากคุณต้องการทำ "เร็วขึ้น"
คุณได้ลองใช้วิธี toDate () ของ LocalDate แล้วหรือยัง?
ใน:
Record r = new Record();
LocalDate date = new Date(1967, 06, 22);
r.setDateOfBirth(date.toDate());
โดยทั่วไปควรระบุว่าล้มเหลวอย่างไรแทนที่จะพูดว่า "ล้มเหลว"