首页 > 解决方案 > 从 DateTime 类 Joda api 中查找最新的时间戳

问题描述

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

标签: javadatetimetimejodatime

解决方案


集合.max()

    List<DateTime> dateTimeObjects = Arrays.asList(
            new DateTime(2021, 2, 13, 21, 0, DateTimeZone.forID("Asia/Istanbul")),
            new DateTime(2021, 2, 13, 22, 0, DateTimeZone.forID("Atlantic/Madeira")),
            new DateTime(2021, 2, 13, 23, 0, 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如果列表为空,则抛出 a 。NullPointerException如果列表包含 a ,它会抛出 a null(除非它null是唯一的元素,那么它可能会被返回)。

文档链接: Collections.max()


推荐阅读