如何将Joda LocalDate转换为java.util.Date?

时间:2011-04-08 15:55:02

标签: java date jodatime

将JodaTime LocalDate转换为java.util.Date对象的最简单方法是什么?

5 个答案:

答案 0 :(得分:69)

JodaTime

要将JodaTime的org.joda.time.LocalDate转换为java.util.Date,请执行

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

要将JodaTime的org.joda.time.LocalDateTime转换为java.util.Date,请执行

Date date = localDateTime.toDate();

JavaTime

要将Java8的java.time.LocalDate转换为java.util.Date,请执行

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

要将Java8的java.time.LocalDateTime转换为java.util.Date,请执行

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

您可能希望使用LocalDateTime#toInstant(ZoneOffset)缩短它,但没有直接API来获取系统默认区域偏移量。

要将Java8的java.time.ZonedDateTime转换为java.util.Date,请执行

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

答案 1 :(得分:10)

您需要一个时区。

LocalDate date = ...

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

答案 2 :(得分:10)

自2.0版本LocalDate具有toDate()方法

Date date = localDate.toDate();

如果使用版本1.5 - 2.0,请使用:

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

在旧版本中,您将获得:

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

答案 3 :(得分:6)

也许这个?

localDate.toDateTimeAtCurrentTime().toDate();

答案 4 :(得分:-2)

试试这个。

新日期(localDate.toEpochDay())