JodaTime的Math.max(...)

时间:2014-05-11 22:48:04

标签: java jodatime

我有两个JodaTime对象,我想要一个像这样的方法

// Return the latest of the two DateTimes
DateTime latest(DateTime a, DateTime b)
但是我找不到这样的事情。我可以轻松地写出来,但我确信JodaTime会把它放在某个地方。

2 个答案:

答案 0 :(得分:15)

正如杰克指出的那样,DateTime实现了Comparable。如果您使用的是番石榴,最多可以通过以下简写确定两个日期(让我们说ab):

Ordering.natural().max(a, b);

答案 1 :(得分:14)

DateTime实现了Comparable,因此除了执行操作之外,您不需要自己动手:

DateTime latest(DateTime a, DateTime b)
{
  return a.compareTo(b) > 0 ? a : b;
}

或直接使用JodaTime API(考虑Chronology而不是compareTo):

DateTime latest(DateTime a, DateTime b)
{
  return a.isAfter(b) ? a : b;
}