答案 0 :(得分:96)
将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();
答案 1 :(得分:6)
您没有在Joda Time中指定您感兴趣的类型,但是:
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
转换为DateTime
,您应指定时区,或者它将使用系统默认时区。 (如果你真的想要那么,我会明确指出它,以明确这是一个慎重的选择。)
例如:
DateTimeZone zone = DateTimeZone.forID("Europe/London");
Date date = ...;
DateTime dateTime = new DateTime(date.getTime(), zone);
答案 2 :(得分:1)
要从Java日期转换为Joda时间日期:
要指定要从Date转换为DateTime时区
要从java.util Date转换为Joda Time of Date,您只需将java.util日期和时区传递给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时间转换为Java日期:
对于相反的情况,Joda DateTime有一个方法toDate()
,它将返回java.util Date。
DateTime jodaDate = new DateTime();
java.util.Date date = jodaDate.toDate();
了解更多详情Visit Here