2016-08-16 8 views
0

joda.time.DateTime.now().toDate()Почему java.time.LocalDateTime не предлагает метод toDate()?

Почему java.time. не предлагает такой способ? Каков наилучший способ преобразования java.time.LocalDateTime в java.util.date?

Я знаю, что мог бы сделать следующее, но это не так.

java.time.LocalDateTime date; 
java.util.Date.from(date.atZone(ZoneId.systemDefault()).toInstant()); 

Я спрашиваю, потому что java.util.Date до сих пор используется во многих системах, как отображения базы данных для Postgres через спящий режим.

+2

A ['LocalDateTime'] (https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html) - это не время как таковое. Это бессрочная дата (например, 12 мая 2016 года 13:45), невозможно оценить ее как время с эпохи без часового пояса. Следовательно, ваше решение, я считаю, является самым аккуратным, если вам нужна дата. ['DateTime'] (http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html) - это совсем другое дело ... –

ответ

5

java.time.* Пакеты JSR-310 не содержат ссылок на java.util.Date или Calendar. Это позволит устаревать старые типы и удалять их в будущем.

Возможно преобразование между старыми и новыми формами, как показано в theseanswers. Преобразование «местных» дат-времени в «моменты времени» всегда сложно, и слишком много вспомогательных методов могут скрывать важные детали преобразования.

Смежные вопросы