从java.util.date转换为JodaTime

从java.util.date转换为JodaTime,java,datetime,jodatime,Java,Datetime,Jodatime,我想将java.util.Date转换为JodaTime,以便在日期之间执行减法运算。有没有一种简洁的方法可以将Date转换为JodaTime java.util.Date date = ... DateTime dateTime = new DateTime(date); 确保date不是null,否则它的行为就像newdatetime()-我真的不喜欢那样。 每个datetime类都提供各种构造函数。其中包括对象构造函数。例如,这允许您从以下对象构造DateTime: * Date - a

我想将
java.util.Date
转换为
JodaTime
,以便在日期之间执行减法运算。有没有一种简洁的方法可以将
Date
转换为
JodaTime

java.util.Date date = ...
DateTime dateTime = new DateTime(date);
确保
date
不是
null
,否则它的行为就像
newdatetime()
-我真的不喜欢那样。

每个datetime类都提供各种构造函数。其中包括对象构造函数。例如,这允许您从以下对象构造DateTime:

* Date - a JDK instant
* Calendar - a JDK calendar
* String - in ISO8601 format
* Long - in milliseconds
* any Joda-Time datetime class

@skaffman如果要避免空日期,可以使用date.getTime()代替。你可能会得到一个空指针异常,但这可能比静默失败要好。我想知道为什么他们不只是重载这些对象的构造函数。@PieterDeBie-因为系统是通用的。您可以注册您自己的对象类型,以便进行转换。因此基本上:
DateTime-DateTime=date==null?null:new-DateTime(date)+1表示“否则它会像new DateTime()-我真的不喜欢那样。”@BabajidePrince No;然后您将得到与new DateTime(null)相同的值,这正是我们想要避免的。该表达式旨在将null保持为null,这在大多数情况下都是有意义的。请注意,Java Date是时区独立的,而Joda DateTime有一个年表。是的,如果null的行为类似于new DateTime(),则一两个时间会给我带来一点异样。。。