The class Instant
represents an instantaneous point on the timeline. Conversion to and from a LocalDate
requires a time zone. Unlike other date and time libraries, the JSR-310 will not automatically select the time zone, so you need to provide it.
LocalDate date = LocalDate.now();
Instant instant = date.atStartOfDay(ZoneId.systemDefault()).toInstant();
This example uses the JVM default time zone – ZoneId.systemDefault()
– to perform the conversion. See here for a longer answer to a related question.
Update: accepted answer uses LocalDateTime::toInstant(ZoneOffset)
who only accepts ZoneOffset
. This answer uses LocalDate::atStartOfDay(ZoneId)
that accepts any ZoneId
. As such, this answer is generally most helpful (and should probably be the accepted one).
PS. I was the lead author of the API