Joda-Time新的DateTime()与DateTime.now()

时间:2018-09-03 11:28:44

标签: java jodatime

自Joda-Time时间2.0版以来,引入了静态方法org.joda.time.DateTime#now()。 对我来说,尚不清楚使用new DateTime()有什么好处(因为代码始终可以委托)。

public static DateTime now() {
    return new DateTime();
}

从Java文档中也不清楚我应该选择哪一个。

new DateTime
  

在默认时区中使用ISOChronology获得一个{@code DateTime}设置为当前系统毫秒时间。

DateTime#now()
  

在默认时区中使用ISOChronology构造一个设置为当前系统毫秒时间的实例。

有人可以解释在哪种用例中应该优先使用哪一种吗?

3 个答案:

答案 0 :(得分:2)

using(var db = new DBTrafosContext()) { var a = db.Reg.FirstOrDefault(); if(a != null){ Regulacion newRegulacion = new Regulacion(a); } } 要求分配一个新对象。 new DateTime()实例是不可变的,因此可以跨请求重用单个对象。这样可能会减少内存流失。

但是在很大程度上,我怀疑您使用它是否重要。

答案 1 :(得分:1)

添加了now()方法,使Java 8中的Joda-Time更加接近java.time.*,从而使转换过程更加容易。这两种方法的行为完全相同。

答案 2 :(得分:0)

我认为没有任何区别。在代码中,使用DateTime.now()看起来比新的DateTime()更为优雅。这是DateTime.now()源代码。

caffeineCacheManager