Подтвердить что ты не робот

Как преобразовать LocalDate в Instant?

Я работаю с новым API DateTime Java 8.

Как преобразовать LocalDate в Instant? Я получаю исключение из

LocalDate date = LocalDate.of(2012, 2, 2);
Instant instant = Instant.from(date);

и я не понимаю, почему.

4b9b3361

Ответ 1

Чтобы преобразовать его в одно мгновение, вам нужно иметь экземпляр LocalDateTime, например:

LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC)

Ответ 2

Класс Instant представляет собой мгновенную точку на временной строке. Для перехода на локальную дату и обратно требуется зона времени. В отличие от некоторых других библиотек даты и времени, JSR-310 не будет автоматически выбирать для вас временную зону, поэтому вы должны ее предоставить.

LocalDate date = LocalDate.now();
Instant instant = date.atStartOfDay(ZoneId.systemDefault()).toInstant();

В этом примере используется временная зона по умолчанию JVM - ZoneId.systemDefault() - для выполнения преобразования. См. Здесь более длинный ответ по соответствующему вопросу.