从 DateTime 类 Joda api 中查找最新的时间戳

问题描述

我有一个 DateTime 对象列表,我的任务是比较它们并找到最新的时间戳。 DateTime 类是从 Joda Api 使用的。我被困在这部分已经有一段时间了。我将不胜感激

解决方法

Collections.max()

    List<DateTime> dateTimeObjects = Arrays.asList(
            new DateTime(2021,2,13,21,DateTimeZone.forID("Asia/Istanbul")),new DateTime(2021,22,DateTimeZone.forID("Atlantic/Madeira")),23,DateTimeZone.forID("Antarctica/Macquarie")));
    DateTime latestDateTime = Collections.max(dateTimeObjects);
    System.out.println(latestDateTime);

输出:

2021-02-13T22:00:00.000Z

我们有时间 22:00 去马德拉。您可能想知道 Macquarie 的时间 23:00 似乎更晚,但 Macquarie 的 UTC 偏移量为 +11:00,因此该时间实际上早了 10 小时。 DateTime 对象是 Comparable 并按瞬间(时间点)而不是按时钟进行比较。所以我们得到了最新的时间点。我们总是会这样做,在多个时区混合时也是如此。

如果列表为空,

Collections.max() 会抛出一个 NoSuchElementException。如果列表包含 NullPointerException,它会抛出一个 null(除非 null 是唯一的元素,然后它可能会被返回)。

文档链接: Collections.max()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...