Eric Wilson
Eric Wilson

Reputation: 59355

How to convert Joda LocalDate to java.util.Date?

What is the simplest way to convert a JodaTime LocalDate to java.util.Date object?

Upvotes: 65

Views: 60605

Answers (5)

BalusC
BalusC

Reputation: 1108722

JodaTime

To convert JodaTime's org.joda.time.LocalDate to java.util.Date, do

Date date = localDate.toDateTimeAtStartOfDay().toDate();

To convert JodaTime's org.joda.time.LocalDateTime to java.util.Date, do

Date date = localDateTime.toDate();

JavaTime

To convert Java8's java.time.LocalDate to java.util.Date, do

Date date = Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());

To convert Java8's java.time.LocalDateTime to java.util.Date, do

Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());

You might be tempted to shorten it with LocalDateTime#toInstant(ZoneOffset), but there isn't a direct API to obtain the system default zone offset.

To convert Java8's java.time.ZonedDateTime to java.util.Date, do

Date date = Date.from(zonedDateTime.toInstant());

Upvotes: 81

Alex Sales
Alex Sales

Reputation: 176

Try this.

new Date(localDate.toEpochDay())

Upvotes: -3

maraswrona
maraswrona

Reputation: 808

Since 2.0 version LocalDate has a toDate() method

Date date = localDate.toDate();

If using version 1.5 - 2.0 use:

Date date = localDate.toDateTimeAtStartOfDay().toDate();

On older versions you are left with:

Date date = localDate.toDateMidnight().toDate();

Upvotes: 10

Alexander Pogrebnyak
Alexander Pogrebnyak

Reputation: 45576

You will need a timezone.

LocalDate date = ...

Date utilDate = date.toDateTimeAtStartOfDay( timeZone ).toDate( );

Upvotes: 9

Sean Patrick Floyd
Sean Patrick Floyd

Reputation: 298898

Maybe this?

localDate.toDateTimeAtCurrentTime().toDate();

Upvotes: 6

Related Questions