如何将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();
欲了解更多详情请访问此处