Ваш код в основном правильный и работал бы с java.time.LocalDate
, только не с реализацией того же класса в org.threeten.bp.LocalDate
.Таким образом, у вас есть два варианта:
- Измените все ваши импорты, чтобы использовать
java.time
вместо org.threeten.bp
, и прекратите использовать бэкпорт. - Используйте
org.threeten.bp.DateTimeUtils
для преобразований между устаревшимиклассы даты и времени и классы в ThreeTen Backport.
Пример варианта 2.:
LocalDate currentDate = LocalDate.now(ZoneId.of("America/Whitehorse"));
Date d = DateTimeUtils.toDate(
currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
System.out.println("" + currentDate + " was converted to " + d);
При запуске на моем компьютере только сейчас этот фрагмент напечатал:
2019-06-25 был преобразован в вторник, 25 июня 00:00:00 CEST 2019
DateTimeUtils
также имеет метод toInstant(Date)
для обратного преобразования.
Ссылка: DateTimeUtils
Документация