如何将Joda-Time DateTime转换为java.util.Date,反之亦然?

有没有可能做到这一点? 如果是的话,我怎样才能从乔达时间转换为date ,反之亦然?

将Java Date转换为Joda DateTime : –

 Date date = new Date(); DateTime dateTime = new DateTime(date); 

反之亦然: –

 Date dateNew = dateTime.toDate(); 

有了TimeZone ,如果需要: –

 DateTime dateTimeNew = new DateTime(date.getTime(), timeZone); Date dateTimeZone = dateTime.toDateTimeAtStartOfDay(timeZone).toDate(); 

您尚未指定您对Joda Time感兴趣的types,但是:

 Instant instant = ...; Date date = instant.toDate(); instant = new Instant(date); // Or... instant = new Instant(date.getTime()); 

Date和“ Instant都与时区无关,因此无需在此指定。

LocalDateTime / LocalDate / LocalTime转换为Date (反之亦然)是没有意义的,因为这取决于所应用的时区。

使用DateTime您可以转换 Date而不指定时区,但要从Date转换为Date ,您应指定时区,否则将使用系统默认时区。 (如果你确实需要的话,我会明确指出这是一个故意的select。)

例如:

 DateTimeZone zone = DateTimeZone.forID("Europe/London"); Date date = ...; DateTime dateTime = new DateTime(date.getTime(), zone); 

从Javadate转换到Joda时间date:
将date转换为需要指定的DateTime时区。
要从java.util Date转换为Joda Time的date,您只需将java.utildate和时区传递给Joda Time of Date的构造函数即可。

 java.util.Date date = new java.util.Date(System.currentTimeMillis()); DateTimeZone dtz = DateTimeZone.getDefault();// Gets the default time zone. DateTime dateTime = new DateTime(date.getTime(), dtz); 

从Joda时间转换为Javadate:
对于相反的情况Joda DateTime有一个方法toDate() ,它将返回java.utildate。

 DateTime jodaDate = new DateTime(); java.util.Date date = jodaDate.toDate(); 

欲了解更多详情请访问此处