Как следует из названия, LocalDate не хранит часовой пояс и время суток. Поэтому для преобразования в абсолютное время вы должны указать часовой пояс и время суток. Существует простой способ сделать это: atStartOfDay (ZoneId). Здесь я использую часовой пояс по умолчанию, который является локальным часовым поясом компьютера. Это дает мгновенный объект, который представляет и мгновенный. Наконец, Java 8 добавила фабричный метод в Date для создания из Instant.
LocalDate localDate = datePicker.getValue();
Instant instant = Instant.from(localDate.atStartOfDay(ZoneId.systemDefault()));
Date date = Date.from(instant);
System.out.println(localDate + "\n" + instant + "\n" + date);
Это даст вам выход, как показано ниже. Обратите внимание, что Instant по умолчанию печатает в формате UTC.
2014-02-25
2014-02-25T06:00:00Z
Tue Feb 25 00:00:00 CST 2014
Конечно, вам нужно будет конвертировать java.util.Date в java.time.LocalDate, чтобы установить значение на DatePicker. Для этого вам нужно будет что-то вроде этого:
Date date = new Date();
Instant instant = date.toInstant();
LocalDate localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println(date + "\n" + instant + "\n" + localDate);
который даст вам выход, как:
Tue Feb 25 08:47:04 CST 2014
2014-02-25T14:47:04.395Z
2014-02-25
Взгляните на [этот пример] (http://stackoverflow.com/questions/5597671/how-to-convert-joda-localdate-to-java-util-date) – MadProgrammer