将JodaTime LocalDate
转换为java.util.Date
对象的最简单方法是什么?
答案 0 :(得分:69)
要将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();
要将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())