从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(),则一两个时间会给我带来一点异样。。。