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

2022-08-31 15:23:03

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


答案 1

乔达时间

要将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());

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

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

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

答案 2

由于 2.0 版本 LocalDate 具有 toDate() 方法

Date date = localDate.toDate();

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

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

在旧版本上,您只能:

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