@M. Prokhorov's answer is correct , Tôi chỉ muốn thêm một vài điểm.
A java.sql.Date
chỉ giữ giá trị ngày, tháng và năm. Các giá trị thời gian (giờ, phút, giây và mili giây) are all set to zero. Vì vậy, khi chuyển đổi LocalDateTime
thành java.sql.Date
, các trường này sẽ bị mất.
Nếu bạn đang làm một sự chuyển đổi một chiều và không ngại mất đi những lĩnh vực, sau đó nó ok để làm điều đó:
LocalDateTime dt = // LocalDateTime value
// convert to Date (time information is lost)
java.sql.Date date = java.sql.Date.valueOf(dt.toLocalDate());
Nhưng nếu bạn muốn khôi phục lại bản gốc LocalDateTime
sau, nó tốt hơn để lưu các lĩnh vực thời gian separetely, vì vậy bạn có thể khôi phục lại nó:
LocalDateTime dt = // your LocalDateTime
// save time information (hour, minute, seconds, fraction of seconds)
LocalTime savedTime = dt.toLocalTime();
// convert to Date (time information is lost)
java.sql.Date date = java.sql.Date.valueOf(dt.toLocalDate());
// retrieve back the LocalDate (only day/month/year)
LocalDate localDate = date.toLocalDate();
// retrieve the LocalDateTime, with the original time values
LocalDateTime ldt = localDate.atTime(savedTime);
Nguồn
2017-07-14 13:22:11
Câu trả lời này phải là câu trả lời đúng của câu hỏi này +1. –